2011-02-01 15 views
8

मैं एक input क्षेत्र है:परिवर्तन पर इनपुट फ़ील्ड को सत्यापित करने के लिए मैं jquery का उपयोग कैसे करूं?

$("#parametersEmail").blur(function(event) { 
    validateParameterEmail(); 
}); 

मैं क्या होगा:

<input type="text" name="notifyEmail" id="parametersEmail" value="" size=40 /> 

मैं jQuery कोड का एक हिस्सा है कि काम करता है जब मैं टैब मारा या अन्यथा क्षेत्र है, जो एक सत्यापन दिनचर्या कॉल छोड़ दें जब भी इनपुट फ़ील्ड का मान या सामग्री बदलती है तो validateParameterEmail() फ़ंक्शन को चलाने के लिए करना पसंद है।

तो मैं फिर भी .change() हैंडलर की कोशिश की:

$("#parametersEmail").change(function(event) { 
    validateParameterEmail(); 
}); 

लेकिन जब मैं parametersEmail की सामग्री को बदलने के लिए, इस हैंडलर मान्यता फ़ंक्शन को कॉल नहीं करता है।

क्या कोई और हैंडलर मुझे उपयोग करना चाहिए, इसके बजाय? या मैं इनपुट फ़ील्ड में एकाधिक ईवेंट हैंडलर संलग्न नहीं कर सकता?

+2

fyi ... इनपुट टेक्स्ट फ़ील्ड पर, .blur() और .change() बहुत अधिक प्रभावी ढंग से एक ही चीज़ हैं। अंतर धुंधला है = परिवर्तन खोना = फोकस खोना + अलग मूल्य। प्वाइंट होने पर आपको किसी भी तरह से इस पर ध्यान देना होगा। यदि आप प्रत्येक बार जब कोई उपयोगकर्ता प्रवेश कर रहे हों, तो फ़ंक्शन को कॉल करने के लिए कहा जाता है, फिर .keyup या का उपयोग करें।जैसा कि अन्य लोगों द्वारा उल्लिखित की गई है –

उत्तर

8

$("#parametersEmail").keydown(function(event) {})

+4

या .keypress() या .keyup() –

+0

हां! बहुत बहुत धन्यवाद। –

+9

'.keydown()' इनपुट के मूल्य में बदलाव से पहले वास्तव में आग लगती है। दूसरे शब्दों में, यदि आप '1234' टाइप करते हैं, तो यह' 123' पर मान्य होगा। इसी प्रकार, यदि आप '1234 [हटाएं] 'टाइप करते हैं, तो यह' 1234' पर मान्य होगा। '.keyup()' फ़ॉर्म सत्यापन के लिए शायद बेहतर है। – jonmorgan

0

बदलें जब आप इनपुट से दूर क्लिक कर/स्थानांतरित करने के लिए संदर्भित करता है की कोशिश करो। आप onKeyUp() देख रहे हैं। (लगभग 2017-वें साल पर हकीकत)

$("#parametersEmail").bind('blur', function(event) {}); 

और

$("#parametersEmail").bind('keyup', function(event) {}); 
6

इस प्रयास करें इनपुट मूल्य बदलने के बारे में घटनाओं की आवश्यकता है।

हैं:

  • KeyUp: उपयोगकर्ता इनपुट में कुछ टाइप किया
  • परिवर्तन: इनपुट में संग्रहीत परिवर्तन
  • क्लिक के बारे में आम ज्ञात विधि: कुछ आदानों ले माउस भी
  • पेस्ट द्वारा परिवर्तन : हाँ! Ctrl + V, Crtl + इन्स, RightMouseButton + पेस्ट इनपुट मूल्य बदल सकते हैं भी
  • propertychange: जब कुछ जे एस किसी भी तरह से हमारी इनपुट बदलता है, इस घटना को निकाल दिया जाएगा
  • इनपुट: नए मानक के घटना है कि सभी आधुनिक ब्राउज़रों का समर्थन करता है, का उपयोग करें यह भी

तो, हम उन सभी को एक बार सेट कर सकते हैं:

$("#parametersEmail").bind("propertychange change click keyup input paste", function(event) { 
    validateParameterEmail(); 
}); 

आशा इस किसी के लिए मदद करता है। ;)

2

सबसे अच्छा तरीका है सब पर एक बार कॉलबैक स्थापित करने के लिए है:

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

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