2011-10-30 17 views
19

पर क्लिक किया गया तो इनपुट क्षेत्र में कर्सर रखें, मैं एक विशिष्ट लिंक क्लिक करने के बाद कर्सर को इनपुट फ़ील्ड में रखना चाहता हूं। मैं इसे एक छोटे से खोज इंजन के लिए उपयोग कर रहा हूं।jQuery - जब लिंक

एक इनपुट फ़ील्ड की कल्पना करें: []। फिर कुछ लिंक जो एक स्ट्रिंग जोड़ रहे हैं जैसे: डेनमार्क, इंग्लैंड इत्यादि इनपुट क्षेत्र में।

अब मुझे कर्सर को इस तरह रखा जाना चाहिए: "डेनमार्क, [यहां]"।

क्या यह संभव है?

* अद्यतन *

मैं पाठ बदलने के लिए इस कोड का उपयोग कर रहा हूँ अभी, तुम कैसे "स्थिति कर्सर" इस ​​के साथ -trick जोड़ना होगा?

$('#denmark').click(function(){  
    $('#searchBoxBig').val('Denmark, '); 
}); 
+0

क्या आप टेक्स्ट को जोड़ने या बदलने के लिए कई क्लिक चाहते हैं? –

+0

टेक्स्ट को बदलें .. मैंने उस पाठ के साथ प्रश्न को अद्यतन किया है जिसका उपयोग मैं अभी करता हूं – skolind

+0

यदि आप ब्राउज़र के दृश्य भाग पर भी कैरेट ले जाना चाहते हैं, तो इस उत्तर को देखें: http://stackoverflow.com/प्रश्न/7892902/संभव-से-स्क्रॉल-कैरेट-इन-व्यू-इन-सिंगल-एचटीएमएल-टेक्स्ट-फ़ील्ड-के साथ-जावास्क्रिप्ट/78 9 3633 # 7893633 –

उत्तर

23

आप सेट कर सकते हैं कि कर्सर selectionStart और selectionEnd गुणों के साथ इनपुट बॉक्स में कहां है। यदि आप कोई पाठ नहीं चुनना चाहते हैं, तो बस उन्हें एक-दूसरे के बराबर बना दें।

यहाँ कैसे आप यह कर सकते हैं:

var input = $("input"); 
input[0].selectionStart = input[0].selectionEnd = input.val().length; 
+0

कभी नहीं, ऐसा हुआ। यह बहुत अच्छा है! धन्यवाद चार्ली! :) – skolind

+0

यह मेरे लिए मोबाइल सफारी पर काम नहीं किया, निकोलस Modrzyk के जवाब का उपयोग करना पड़ा। – Sebastian

2
$(":input[name=xxxx]").focus(); 

आह, तुम कर्सर की जरूरत है सभी पाठ के बाद होने की? यहां एक नज़र डालें: jQuery Set Cursor Position in Text Area यह टेक्स्टरेरा के बजाय इनपुट के लिए समान कार्य करता है।

यदि आप अन्य चयनकर्ताओं का उपयोग करते हैं तो यह भी काम करता है।

33

हाँ, लंगर पर क्लिक करें घटना को पकड़ने डिफ़ॉल्ट गतिविधि को रोकता और क्षेत्र पर ध्यान केंद्रित।

फ़ंक्शन संदर्भ में उस तत्व को शामिल किया गया है जिसे क्लिक किया गया है ताकि आप किस फ़ील्ड पर फ़ोकस कॉल लागू कर सकें।

$(anchorSelector).live("click", function(e) { 
    e.preventDefault(); 

    $(fieldSelector).focus() 

    return false; 
}) 
+0

मैंने प्रश्न को अद्यतन किया है, पाठ को प्रतिस्थापित करने के लिए, आप अपने वर्तमान कोड में चाल कैसे जोड़ेंगे? – skolind

+2

यह जाने का रास्ता है! – blackhawk

+0

यह मोबाइल सफारी पर भी काम करता है! धन्यवाद! – Sebastian

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