2012-02-13 11 views
5

टेक्स्ट इनपुट में, यदि टेक्स्ट मौजूद है, और आप कर्सर को स्वचालित रूप से प्रारंभ करने के लिए कूदते हैं तो क्लिक करने के लिए क्लिक करें। ऐसा लगता है कि आईई में ही होता है।आईई: कर्सर कूद इनपुट में शुरू करने के लिए कूद

मैं थोड़ी देर के लिए इसे गुगल कर रहा हूं और मैंने पाया कि उदाहरणों के लोड की कोशिश की लेकिन कुछ भी काम नहीं कर रहा है। दुर्भाग्यवश, इनपुट एक जेएसपी में लिखा गया है जिस पर मेरा नियंत्रण नहीं है और मुझे लगता है कि मुझे यह समस्या केवल एक कारण है क्योंकि वहां कुछ जावास्क्रिप्ट हार्ड कोड किए गए हैं।

<input type="text" id="simpleSearchString" class="text" onfocus="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" onblur="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" value="" maxlength="255" name="searchCriteria.simpleSearchString"> 

मैं बस इतना करना चाहता हूं कि यह कूद हटा दें।

मैं जोड़ने के लिए निम्न कोड की मदद की है, लेकिन कुछ भी करने को नहीं मालूम था सोचा:

jQuery("input#simpleSearchString").focus(); 

मैं नहीं 100% यकीन है कि क्या देव 'जावास्क्रिप्ट के साथ प्राप्त करने के लिए कोशिश कर रहे हैं रहा हूँ: इस .. .etc 'लेकिन शायद मुझे इसे हटाने का एक तरीका मिल सकता है।

+0

regexes क्षेत्र से प्रमुख/पिछली श्वेत रिक्ति को अलग करना कर रहे हैं। सबसे अधिक संभावना यह कर्सर को कूदने का कारण बन रही है, क्योंकि आईई मानता है कि सामग्री बदल गई है और पुराने कर्सर की स्थिति को अमान्य कर दिया गया है। –

+0

इनपुट तत्व से 'ऑनफोकस' और 'ऑनब्लर' को हटाने के बारे में क्या? यह आसानी से jQuery के साथ किया जा सकता है। –

+0

धन्यवाद मार्क बी, मुझे अभी पता चला है कि इस जावास्क्रिप्ट को जगह में रखा गया था क्योंकि किसी भी अग्रणी/पीछे की सफेद जगह एक खोज के परिणामों को प्रभावित कर रही थी। जेएसपी से मैं देख सकता हूं कि यह Gillian

उत्तर

2

आप इन इनलाइन घटनाओं को मार सकते हैं और स्वयं को प्लग कर सकते हैं;

var el = $("#simpleSearchString"); 
el[0].onfocus = el[0].onblur = null; 

$(el).on("focus blur", function(e) { 
    this.value = $.trim(this.value);  
    if ((e.type === "focus") && this.createTextRange) { 
     var r = this.createTextRange(); 
     r.moveStart("character", this.value.length); 
     r.select(); 
    } 
}); 

(यह अपने केवल IE मान लिया गया कैरट का स्थान बदलने की आवश्यकता है कि)

+0

ने एक इलाज किया! बहुत बहुत धन्यवाद। आपको पता नहीं है कि यह कितना परेशान है। – Gillian

+0

हाय, मुझे एक ही समस्या है और इस समाधान का उपयोग किया गया है; यह कर्सर को प्रारंभिक फोकस पर कूदने से बचाता है, लेकिन यदि उपयोगकर्ता इनपुट के भीतर क्लिक करता है तो वह अभी भी शुरुआत में कूद जाएगा। क्या आपके पास मौके के लिए एक फिक्स है? – nocarrier

+0

इस मुद्दे को हल किया गया जहां IE कुछ टाइप करने के बाद कर्सर स्थिति को इंडेक्स 0 में बदल देगा और फिर टेक्स्टबॉक्स पर क्लिक करेगा। – Moulde

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