2012-12-14 17 views
10

के इनपुट तत्वों में प्रवेश का पता लगाएं मुझे किसी विशिष्ट वर्ग के साथ टेक्स्ट इनपुट में "एंटर" हिट करने पर पता लगाना चाहिए।किसी निश्चित वर्ग

मेरे jQuery इस प्रकार है:

<tr><td> Personal Name </td></tr> 
<tr><td> <input type='text' class='large'> </td></tr> 

<tr><td> Email</td></tr> 
<tr><td> <input type='text' class='large'> </td></tr> 

जब मैं खेतों ID दी गई और $('#elementid').keypress यह काम की कोशिश की है:

$('input.large').keypress(function (e) { 
    if(e.which ==13) 
     console.log("pressed enter"); 
}); 

मेरे एचटीएमएल कुछ इस तरह है। लेकिन यह काम नहीं कर रहा है। मुझे कोई कंसोल आउटपुट नहीं मिलता है। मैं क्या खो रहा हूँ?

+0

क्या आपने अपना कोड दस्तावेज़ तैयार हैंडलर के भीतर रखा है? मेरे पास – undefined

+0

है। इससे पहले और बाद में अन्य कोड ठीक काम कर रहा है। – user961627

+0

क्या आप http://jsfiddle.net पर डेमो प्रदान कर सकते हैं? – undefined

उत्तर

10
है

आप लाइव उपयोग कर सकते हैं (.on()) के साथ document में घटनाओं keydown (मुझे लगता है कि यह बेहतर है) । यह आपको वर्तमान और भविष्य के तत्वों में keydown का पता लगाने की अनुमति देगा जो चयनकर्ता के साथ मेल खाता है।

एचटीएमएल:

<strong>Personal Name</strong> 
<input type='text' class='large' /><br /> 

<strong>Email</strong> 
<input type='text' class='large' /> 
​ 

जे एस (jQuery के साथ runnable 1.7+):

jQuery(document).on('keydown', 'input.large', function(ev) { 
    if(ev.which === 13) { 
     // Will change backgroundColor to blue as example 
     this.style.backgroundColor = '#EFF'; 

     // Avoid form submit 
     return false; 
    } 
}); 

jsFiddle: अपने विवरण के लिए http://jsfiddle.net/qvhWD/

+0

मुझे इसे कहां रखा जाना चाहिए? मैंने इसे '$ (दस्तावेज़) के अंदर करने की कोशिश की। पहले से ही (फ़ंक्शन() {...}); 'और इसके बाहर भी, लेकिन किसी भी तरह से एक वाक्यविन्यास त्रुटि थी। – user961627

+0

यह वाक्यविन्यास त्रुटि कहां है?** इसे आजमाएं **: फ़ाइल के अंत में इस सामग्री के साथ एक विशेष '

2

जांच इस एक: http://jsfiddle.net/EJyyr/

इस एचटीएमएल प्रयोग किया है:

<tr><td> Personal Name </td></tr> 
<tr><td> <input type='text' class='large' id='a'> </td></tr> 

<tr><td> Email</td></tr> 
<tr><td> <input type='text' class='large' id='b'> </td></tr> 

और इस jQuery which logs the input text id

$('.large').keypress(function (e) { 
    if(e.which ==13) 
    console.log($(this).attr('id')); 
}); 
0

धन्यवाद डेविड रोड्रिग्स। इससे बहुत मदद मिली। मुझे अपनी JQuery लाइब्रेरी को अपग्रेड करना पड़ा और .live() फ़ंक्शन ठीक से काम करने के लिए रुक गया।

आप निम्न

के लिए इसका इस्तेमाल कर सकते हैं एक फार्म के सभी चेक बॉक्स आदानों का चयन करें जब select_all_checkboxes इनपुट प्रकार चेकबॉक्स पर क्लिक करें:

jQuery(document).on("click", "#select_all_checkboxes", function(){ 
    var chk = this.checked; 
    $('input[id=selectAll]').each(function(){ 
     this.checked = chk; 
    }); 
}); 

कॉल एक समारोह "checkMail" उपयोगकर्ता क्षेत्र छोड़ दिया जब किसी भी क्षेत्र के टैब कहां क्लिक करके जिसका नाम "ईमेल" है:

jQuery(document).on("blur", 'input.email', function(event){ 
    var email = $(this).val(); 
    if (!checkMail(email)) { 
     alert("Invalid email."); 
     $(this).focus(); 
    } 
}); 
+0

जबकि आपके उत्तर की सराहना की जाती है, किसी अन्य उपयोगकर्ता के उत्तर पर एक टिप्पणी बस यही होनी चाहिए। – J0e3gan

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