2013-02-23 19 views
7

में परिवर्तित हो जाता है मैं इस बस कोड है:जावास्क्रिप्ट: onchange ईवेंट सक्रिय नहीं है जब मूल्य onkeyup घटना

<body> 
     <input type="text" onkeyup="this.value = (new Date()).getSeconds()" onchange="alert(1)" /> 
    </body> 

मैं dont't जानते हो क्यों जब मैं कुंजी लेकिन onchange घटना प्रेस पाठ बॉक्स मूल्य बदल गया है आग नहीं है मैं एक्सचेंज इवेंट कैसे आग लगा सकता हूं?

+0

सब कुछ के लिए ऑनपूट का उपयोग करें यानी –

+0

उपयोग करें: 'onkeyup =" this.value = (नई तिथि())। GetSeconds(); this.onchange(); "' – Ian

+0

@ बामार, इयान: मुझे आवश्यकता नहीं है ऑनकीप फ़ंक्शन में टेक्स्टबॉक्स परिवर्तन के मान के बाद अस्थिर ईवेंट ठीक होता है। जब मैं टेक्स्टबॉक्स छोड़ने के लिए पेज पर क्लिक करता हूं तो मुझे अलर्ट (1) शो की आवश्यकता होती है। – hieund

उत्तर

1

onchange जब आप इससे फोकस छोड़ते हैं तो आग लग जाएगी (यदि आपने कोई बदलाव किया है)। यह व्यवहार केवल text और textarea इनपुट प्रकारों के साथ होता है क्योंकि जब आप टाइपिंग करते हैं तो जावास्क्रिप्ट नहीं जानता है।

मुझे नहीं पता कि कोड में चेकबॉक्स क्यों है, लेकिन जो भी हो। ईमानदारी से, मैं आपको बताने में सक्षम नहीं हूं, लेकिन समस्या इनपुट पर गतिशील मूल्य परिवर्तन है (अनुमान है कि परिवर्तन उपयोगकर्ता द्वारा नहीं किया जाता है, लेकिन मुझे वास्तव में पता नहीं है), अगर आप ऑनकीप के अंदर कोड को हटा देंगे, यह काम करेगा। जो कुछ भी हो, यदि आप चाहते हैं कि इनपुट कुछ फोकस करता है तो इनपुट फोकस खो देता है, तो आप उस स्थिति में onblur का उपयोग कर सकते हैं।

+0

डाउनवॉट्स के लिए स्पष्टीकरण? मैं इसके साथ सुधार करना चाहता हूं, अगर नहीं तो मैं गलत रहूंगा। – martriay

+0

"आप ऐसा क्यों करेंगे?" : क्योंकि मुझे कुंजीपटल होने पर इनपुट मान प्राप्त करना होगा, यदि यह मान्य नहीं है, तो मैं इसे सही कर दूंगा और मान्य मान वापस कर दूंगा। इनपुट मान बदलने के बाद, मैं बदले में कुछ और करूँगा। लेकिन, इस सरल कोड में, जब मैं टेक्स्टबॉक्स पर ध्यान केंद्रित करने के लिए पृष्ठ पर क्लिक करता हूं तो भी बदले में आग लगती नहीं है। (आप इसे नोटपैड में कॉपी कर सकते हैं, एचटीएमएल को चेक करने के लिए सहेजें) – hieund

+0

मुझे नहीं पता कि कोड में चेकबॉक्स क्यों है, लेकिन जो भी हो। ईमानदारी से, मैं आपको बताने में सक्षम नहीं हूं, लेकिन समस्या इनपुट पर गतिशील मूल्य परिवर्तन है (अनुमान है कि परिवर्तन उपयोगकर्ता द्वारा नहीं किया जाता है, लेकिन मुझे वास्तव में पता नहीं है), अगर आप 'onkeyup' के अंदर कोड को हटा देंगे, यह काम करेगा। जो भी हो, यदि आप चाहते हैं कि इनपुट कुछ फोकस करता है तो इनपुट फोकस खो देता है, तो आप इसके बजाय 'onblur' का उपयोग कर सकते हैं, उस मामले में अधिक सटीक है। – martriay

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