2012-05-16 25 views
6

मैं इन घटनाओं का उपयोग फॉर्म इनपुट का मूल्यांकन करने के लिए कर रहा हूं, लेकिन यदि ब्राउज़र ब्राउज़र द्वारा स्वत: भर दिया गया है तो ये घटनाएं आग नहीं लगती हैं। मैं ईवेंट को ऑटोफिल पर भी कैसे आग लगा सकता हूं?Jquery .keyup .keydown .keypress ब्राउज़र ऑटोफिल का पता नहीं लगाता

+0

मैंने कुछ समय पहले इसका शोध किया था और मुझे विश्वास नहीं है कि आप ब्राउज़र ऑटोफिल के लिए कोई ईवेंट नहीं कर सकते हैं। हालांकि किसी भी उत्तर में दिलचस्पी होगी :) –

+0

यह जानने के बिना कि आप क्या कर रहे हैं, क्या आप एक '.change()' ईवेंट हैंडलर भी जोड़ सकते हैं? मैं ईमानदारी से यह भी सुनिश्चित नहीं कर रहा हूं कि वह घटना ब्राउज़र ऑटोफिल के साथ भी आग लगती है। – jaredhoyt

+0

मैं जेरेड के सुझाव के रूप में '.change()' को आज़माउंगा, लेकिन यदि यह काम नहीं करता है तो आपको '.blur()' का उपयोग करना पड़ सकता है। – nnnnnn

उत्तर

2

दुर्भाग्य से ब्राउज़र ऑटोफिल का पता लगाने का कोई तरीका नहीं है। इसके बजाय, setInterval का उपयोग करें, उदाहरण के लिए, एक काफी उच्च आवृत्ति पर फ़ंक्शन चलाने के लिए जो यह जांचता है कि मूल मान (या खाली) इनपुट मान से मेल खाता है और उस तरह प्रतिक्रिया को ट्रिगर करता है। यदि आप ऐसा नहीं करना चाहते हैं, तो शायद आप एसओएल हैं क्योंकि ब्राउजर .change को भी ट्रिगर नहीं करेगा, और किसी भी घटना को पार-ब्राउज़र अनुपालन की संभावना नहीं है।

आप फॉर्मेशन सबमिशन पर भी सत्यापन घटनाएं चला सकते हैं, जो कि उतना ही प्रभावी होना चाहिए।

+0

हाँ सबमिशन तकनीक के साथ समस्या यह है कि मैं सामग्री के सत्यापन के आधार पर इनपुट सीमा का रंग बदल रहा हूं, इसलिए मुझे हर बार आग लगने की घटना की आवश्यकता होती है –

0

आप .click() और/या .dblclick() ईवेंट को बाध्यकारी करके वांछित व्यवहार को नकली बना सकते हैं।

इसकी गारंटी नहीं है, लेकिन यदि आप बॉक्स से इसे चुनकर स्वत: पूर्ण "अनुमोदित" करने का निर्णय लेते हैं तो आप अतिरिक्त माउस क्लिक को छीन सकते हैं।

2

मुझे पता है कि यह काफी पुराना सवाल है, लेकिन मैंने कुंजीपटल फ़ंक्शन के बाद e.preventDefault() का उपयोग करके एक ही समस्या हल की।

$("#email").keyup(function (e) { 
     e.preventDefault(); 
इस तरह से अगर आप स्वत: भरण यह देखेंगे ब्राउज़र द्वारा सुझाव दर्ज साथ चयन में

। समस्या तब भी बनी हुई है जब आप सुझाव पर माउस के साथ क्लिक करते हैं, लेकिन अगर आप इसे चुनने के बाद कोई भी कुंजी दबाते हैं तो यह ठीक काम करता है।

अंतिम समाधान

मैं stackoverflow पर इस पोस्ट पाया: https://stackoverflow.com/a/24746108/3481005

और .on का उपयोग कर ("इनपुट") काम कर देता है!

$("#email").on("input",function (e) { 

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

  • कोई संबंधित समस्या नहीं^_^