जब कोई मूल्य परिवर्तित होता है तो क्या घटनाएँ एक <इनपुट प्रकार = "संख्या" /> आग होती है?


93

सोच रहे हैं कि क्या किसी को पता है कि एचटीएमएल 5 <input type="number" />तत्व कब आग लगाता है जब इसके ऊपर / नीचे तीर क्लिक किए जाते हैं:

उदाहरण संख्या इनपुट

मैं पहले से ही इसके लिए उपयोग कर रहा हूं onblurजब फोकस इनपुट क्षेत्र को छोड़ देता है।


जवाबों:


73

change क्षेत्र के मूल्य में परिवर्तन होने पर निकाल दिया जाता है।

मुझे लगता है कि HTML5 इवेंट में inputभी आग लग जाएगी।


36
केवल तभी oninputनिकाल दिया जाता है जब 'ऊपर' और 'नीचे' तीर क्लिक किए जाते हैं।
एन 1.1 1.1

2
लेकिन onchange केवल फ़ायरफ़ॉक्स में धब्बा, कम से कम आग पर। मुझे लगता है कि हमें प्रमुख प्रेस की तलाश करनी होगी।
औरो

onchange और oninput दोनों ओपेरा में काम करते थे, लेकिन Chrome में केवल oninput ही काम करेगा (और तब ही जब मैं इवेंट-हैंडलर से असत्य लौटाऊंगा - अन्यथा क्रोम बार-बार ऑनिनपुट इवेंट में आग लगा देगा)
Ian Oxley

2
changeजब मूल्य टाइप किया जाता है तो फायर नहीं होता है, केवल तब जब बटन क्लिक किया जाता है (कम से कम फ़ायरफ़ॉक्स पर)।
टिम्मम

5
inputके बीच एक संलयन की तरह हैkeyup change
थान ट्रुंग

37

मैंने पाया कि jQuery के लिए क्रोम में निम्नलिखित कोड कवर किए गए कीबोर्ड इनपुट, मूसवेल परिवर्तन और बटन क्लिक, और फ़ायरफ़ॉक्स में भी इनपुट इनपुट संभाला

$("input[type=number]").bind('keyup input', function(){
    // handle event
});

2
इसमें भी 'परिवर्तन' जोड़ें और यह एकदम सही है। आप अभी भी इसके लिए बाहरी परिवर्तनों को सुनना चाहते हैं, और वैसे भी इसे जोड़ने में कोई बुराई नहीं है।
मैट फ्लेचर

और 'मूसवेल' भी अगर आप इनपुट फील्ड के अंदर स्क्रॉल इवेंट्स को चुनना चाहते हैं।
मैट फ्लेचर

4
ध्यान दें कि .bind()अब इसके पक्ष में पदावनत किया गया है.on()
माइकल हेस

7

मैंने पाया है कि onkeyupऔर onchangeकवर सब कुछ क्रोम 19. यह हैंडल प्रत्यक्ष मूल्य इनपुट में, ऊपर तीर नीचे कुंजी दबाने, बटन क्लिक करके और माउसव्हील स्क्रॉल।

onchangeअकेले क्रोम में पर्याप्त होगा, लेकिन अन्य ब्राउज़र जो केवल टेक्स्ट बॉक्स के रूप में फ़ील्ड को प्रस्तुत करते हैं onkeyup, उन्हें बाइंडिंग की आवश्यकता होती है , जो नए मान को पढ़ने के लिए पूरी तरह से काम करता है।

mousewheelघटना को अलग से बांधना कम सफल रहा। ईवेंट को बहुत पहले निकाल दिया गया - फ़ील्ड मान अपडेट किए जाने से पहले - और इसलिए हमेशा फ़ील्ड का पिछला मान दिया गया


यह फ़ायरफ़ॉक्स के लिए भी सही है।
बारफिन

5

onchangeकलंक पर घटना की आग लेकिन oninputघटना आग आप लिखते ही। हो सकता है कि आप oninputइवेंट में टाइमर लगाना चाहते हों और onchangeजब उपयोगकर्ता ने एक सेकंड के लिए लिखना बंद कर दिया हो तो अपने ईवेंट को आग लगा सकता है ?


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.