2012-07-02 7 views
5

जब मैं .focus() करने का प्रयास करता हूं तो मैं इनपुट तत्व पर ध्यान केंद्रित करने और मूल्य के अंतिम चरित्र के बाद कर्सर देखने की अपेक्षा करता हूं। और मैं इसे आईई में देखता हूं।jQuery। फोकस() प्रत्येक ब्राउज़र में अलग-अलग काम करता है। इसे कैसे रोकें?

सफारी/क्रोम इनपुट में फोकस हो जाता है और सभी टेक्स्ट का चयन किया जाता है। फ़ायरफ़ॉक्स/ओपेरा इनपुट में फोकस हो जाता है, लेकिन कर्सर शुरुआत में है।

मैं इसे रोकने और सभी ब्राउज़रों के लिए सही व्यवहार पाने के लिए क्या कर सकता हूं?

एक उदाहरण यहाँ है: http://jsbin.com/ozojol/edit#javascript,html

पी एस। focus().val('').val(value) विधि IE में काम नहीं करती है ... अन्य कामकाज मौजूद हैं?

+0

फ़ायरफ़ॉक्स का कौन सा संस्करण, और किस ओएस पर? विंडोज 7 पर फ़ायरफ़ॉक्स 13.0.1 कर्सर को मूल्य के बाद रखता है। –

+0

ओएसएक्स, फ़ायरफ़ॉक्स 13.0 :) मैं 13.0.1 बाद में कोशिश करूंगा, लेकिन यह अन्य ब्राउज़रों में अलग-अलग काम करता है :) और मैं समाधान को खोजने की कोशिश कर रहा हूं कि इसे कैसे रोकें। – ValeriiVasin

+0

देखें http://stackoverflow.com/a/4716021/96100 –

उत्तर

7

आपको IE < 9. में इनपुट के सबसे ब्राउज़रों में selectionStart और selectionEnd गुण और कुछ बुरा TextRange सामान का उपयोग कर सकते यहाँ कुछ an answer to a similar question से अनुकूलित कोड है।

डेमो: http://jsbin.com/azapuy

कोड:

function moveCaretToEnd(el) { 
    if (typeof el.selectionStart == "number") { 
     el.selectionStart = el.selectionEnd = el.value.length; 
    } else if (typeof el.createTextRange != "undefined") { 
     var range = el.createTextRange(); 
     range.collapse(false); 
     range.select(); 
    } 
} 

var input = $('#i')[0]; 
input.focus(); 
moveCaretToEnd(input); 
+1

मैं पुष्टि कर सकता हूं कि यह सभी प्रमुख ब्राउज़रों में काम करता है। – rcdmk

+0

बढ़िया! धन्यवाद! – ValeriiVasin

+0

एफएफ 16 में काम करता है - अच्छा! आपको वास्तविक डोमेन तत्व (जैसा कि ऊपर दिखाया गया है) के साथ moveCaretToEnd को कॉल करने के लिए सावधान रहना होगा, jQuery ऑब्जेक्ट नहीं। उत्तरार्द्ध काम नहीं करता है। – sieppl

1

देखभाल के लिए आपके तत्व के भीतर सामग्री को समाप्त करने के लिए एक बहुत हल्का प्लगइन है। jQuery Caret

Live Demo

+0

यह फ़ायरफ़ॉक्स 3.6 पर काम नहीं करता है। इसमें काम करता है: आई 7, आईई 8, आईई 9, क्रोम 1 9 और सफारी 4. ओपेरा 11. – rcdmk

+0

@ आरसीडीएमके में मैंने अपनी स्थिति अपडेट की है। ** [jQuery कैरेट] (https://github.com/DrPheltRight/jquery-caret) ** इस मुद्दे से निपटेंगे। – Farahmand

+0

jQuery कैरेट IE8 में काम नहीं करता है। शायद दूसरों ने कोशिश नहीं की है। – ValeriiVasin

0

केवल सामान्य व्यवहार select(), कि सभी प्रमुख ब्राउज़रों में इनपुट पाठ का चयन करता है (अगर यह सभी ब्राउज़रों में काम करता है की पुष्टि नहीं कर सकते हैं)।

संबंधित मुद्दे