JQuery का उपयोग करके पेज लोड पर एक फॉर्म इनपुट टेक्स्ट फ़ील्ड पर ध्यान कैसे दें?


238

यह शायद बहुत सरल है, लेकिन क्या कोई मुझे बता सकता है कि पेज लोड पर टेक्स्ट बॉक्स पर कर्सर को कैसे झपकाएं?


96
हम यहाँ सरल सवालों का बुरा नहीं मानते।
DOK

नीचे दिए गए लिंक पर
सोहेल आरिफ

जवाबों:


379

पहले टेक्स्ट फ़ील्ड पर ध्यान केंद्रित करें:

 $("input:text:visible:first").focus();

यह पहला टेक्स्ट फ़ील्ड भी करता है, लेकिन आप [0] को दूसरे इंडेक्स में बदल सकते हैं:

$('input[@type="text"]')[0].focus(); 

या, आप आईडी का उपयोग कर सकते हैं:

$("#someTextBox").focus();

2
यदि कोई संवाद का उपयोग कर रहा है, तो कृपया इस उत्तर को देखें यदि उपरोक्त कार्य नहीं कर रहा है stackoverflow.com/a/20629541/966609
मैट कैंटी

1
$('input[type="text"]').get(0).focus(); ... मेरे लिए काम किया
Rav

91

आप इसके लिए HTML5 काautofocus उपयोग कर सकते हैं । आपको jQuery या अन्य जावास्क्रिप्ट की आवश्यकता नहीं है।

<input type="text" name="some_field" autofocus>

ध्यान दें कि यह IE9 और लोअर पर काम नहीं करेगा।


ऑटोफोकस IE11 में काम नहीं करता है या तो stackoverflow.com/questions/34068302/…
BA TabNabber

यह मेरे परिदृश्य के लिए काम करता है लेकिन चयनित उत्तर किसी कारण से नहीं हुआ।
विष्णु वाईएस

27

ज़रूर:

<head>
    <script src="jquery-1.3.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function() {
            $("#myTextBox").focus();
        });
    </script>
</head>
<body>
    <input type="text" id="myTextBox">
</body>

2
मैं html एलिमेंट के बाद स्क्रिप्ट लाने की सलाह देता हूं।
अली शेखपुर 12

1
@AliSheikhpour स्क्रिप्ट डॉम रेडी रैपर के भीतर है, इसलिए इससे कोई फर्क नहीं पड़ता कि यह html एलिमेंट से पहले है, लेकिन यह वैसे भी सिर में नहीं होना चाहिए।
पोन्नूडल्स

22

क्यों हर कोई इस के रूप में कुछ सरल के लिए jQuery का उपयोग कर रहा है।

<body OnLoad="document.myform.mytextfield.focus();">

15
क्योंकि प्रश्न को jQuery के रूप में टैग किया गया है।
आदर्श मादरेचा

18

ऐसा करने से पहले अपने यूजर इंटरफेस के बारे में सोचें। मैं मानता हूं (हालांकि किसी भी उत्तर ने ऐसा नहीं कहा है) जब आप jQuery के ready()फ़ंक्शन का उपयोग करके दस्तावेज़ लोड करते हैं तो आप ऐसा कर रहे होंगे । यदि उपयोगकर्ता ने दस्तावेज़ लोड होने से पहले ही एक अलग तत्व पर ध्यान केंद्रित किया है (जो कि पूरी तरह से संभव है) तो यह उनके लिए बहुत ही परेशान करने वाला है कि फोकस को चुरा लिया जाए।

आप यह दर्ज करने के लिए onfocusअपने प्रत्येक <input>तत्व में विशेषताएँ जोड़कर देख सकते हैं कि क्या उपयोगकर्ता पहले से ही किसी फॉर्म फ़ील्ड पर फोकस कर चुका है और फिर फोकस को चुरा नहीं रहा है:

var anyFieldReceivedFocus = false;

function fieldReceivedFocus() {
    anyFieldReceivedFocus = true;
}

function focusFirstField() {
    if (!anyFieldReceivedFocus) {
        // Do jQuery focus stuff
    }
}


<input type="text" onfocus="fieldReceivedFocus()" name="one">
<input type="text" onfocus="fieldReceivedFocus()" name="two">

2
आपका दृष्टिकोण न केवल तकनीकी रूप से सही है, बल्कि सबसे अच्छा UX के लिए आपका विचार उत्तम है। वाहवाही!
फॉलोशु ओलादिपो

12

HTML:

  <input id="search" size="10" />

jQuery:

$("#search").focus();

1
यदि html5 का उपयोग कर रहे हैं, autofocusतो इनपुट तत्व में विशेषता जोड़ें ?
आदर्श मादरेचा

उस विशेषता का उपयोग कैसे किया जाता है, और क्या यह मूल तत्व बनते ही केंद्रित तत्व बन जाएगा?
खोम नाज़िद

8

एक पुराने प्रश्न को टालने के लिए क्षमा करें। मुझे यह google के माध्यम से मिला।

यह भी ध्यान देने योग्य है कि एक से अधिक चयनकर्ता का उपयोग करना संभव है, इस प्रकार आप किसी भी प्रकार के तत्व को लक्षित कर सकते हैं, और केवल एक विशिष्ट प्रकार को नहीं।

जैसे।

$('#myform input,#myform textarea').first().focus();

यह पहले इनपुट या टेक्सटेरिया को खोजता है, और निश्चित रूप से आप अन्य चयनकर्ताओं को भी मिश्रण में जोड़ सकते हैं। Hnady यदि आप पहले एक विशिष्ट तत्व प्रकार के बारे में निश्चित नहीं हो सकते हैं, या यदि आप कुछ सामान्य / पुन: प्रयोज्य चाहते हैं।


बेहतरीन सुझाव @Andrew।
डीओके

6

यह वह है जो मैं उपयोग करना पसंद करता हूं:

<script type="text/javascript">
    $(document).ready(function () {
        $("#fieldID").focus(); 
    });
</script>

3
यह चीजों को करने का एक बुरा तरीका है, दस्तावेज़ लोड पर एक <इनपुट> पर ध्यान केंद्रित करने के लिए, बस autofocusHTML5 द्वारा प्रदान की गई विशेषता का उपयोग करें
ओवरकोडर


0

इसे प्राप्त करने का सरल और आसान तरीका

$('#button').on('click', function () {
    $('.form-group input[type="text"]').attr('autofocus', 'true');
});

0

लाइन $('#myTextBox').focus()अकेले टेक्स्ट बॉक्स में कर्सर नहीं डालेगी, इसके बजाय उपयोग करें:

$('#myTextBox:text:visible:first').focus();
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.