HTML में onBlur और onChange विशेषता के बीच क्या अंतर है?


117

जब एक दूसरे को बनाम कहा जाता है? क्या ऐसी स्थिति है कि ऑनचेंज को बुलाया जाएगा लेकिन ऑनबुल को नहीं बुलाया जाएगा?

जवाबों:


171

onBlurजब आप अपने मूल्य जरूरी बदल बिना एक वस्तु से दूर स्थानांतरित कर दिया घटना निकाल दिया जाता है।

onChangeघटना केवल कहा जाता है जब आप फ़ील्ड का मान बदल गया है और यह ध्यान केंद्रित खो देता है।

आप quirksmode की इंट्रो घटनाओं पर एक नज़र डालना चाहते हैं । जब आप इसके साथ बातचीत करते हैं तो आपके ब्राउज़र में क्या चल रहा है, इसकी जानकारी प्राप्त करने के लिए यह एक शानदार जगह है। उनकी किताब भी अच्छी है।


2
आपके लिंक के बारे में quirksmode कलंक के बारे में बात नहीं करते हैं, बस बुनियादी घटनाओं
8

23

जब कोई फ़ील्ड फ़ोकस खोता है, तो ऑनब्लोर फ़ायर्स करता है, जबकि ऑन्कचेंज उस क्षेत्र के मूल्य में परिवर्तन होने पर फ़्रीचेंज करता है। हालाँकि, ये घटनाएँ हमेशा एक ही क्रम में नहीं होंगी।

फ़ायरफ़ॉक्स में, एक बदले हुए क्षेत्र से टैब आउट करने पर ऑनब्लॉक पर ऑन्कॉन्ग फायर हो जाएगा, और यह सामान्यतः IE में भी ऐसा ही करेगा। हालाँकि, यदि आप टैब के बजाय एंटर कुंजी दबाते हैं, तो फ़ायरफ़ॉक्स में यह ऑनब्लॉकर को आग देगा, जबकि आईई आमतौर पर मूल क्रम में फायर करेगा। हालाँकि, मैंने ऐसे मामले देखे हैं जहाँ IE पहले भी धब्बा लगाएगा, इसलिए सावधान रहें। आप यह नहीं मान सकते हैं कि या तो ऑनब्लर या ऑन्चेंज दूसरे से पहले होगा।


10

चीजों को ठोस बनाने के लिए एक उदाहरण। यदि आपका चयन इस प्रकार है:

<select onchange="" onblur="">
  <option>....
</select>

onblur()जब आप यहां से कहा जाता है। onchange()कहा जाता है जब आप चयन से एक अलग विकल्प का चयन करें - यानी आप बदलना क्या यह वर्तमान के रूप में चुना है।


1
एक और उदाहरण: प्रकार के इनपुट में number, ऊपर / नीचे तीर पर क्लिक करने से एक परिवर्तन ईवेंट (लेकिन धब्बा ईवेंट नहीं) में आग लग जाएगी, जबकि टाइपिंग केवल एक ईवेंट बदलने का कारण बनता है जब फ़ील्ड फोकस खो देता है।
क्रिस मिडलटन

7

फ़ायरफ़ॉक्स में ऑनकॉन्ग तभी फायर करता है जब आप टैब करते हैं या फिर इनपुट फ़ील्ड के बाहर क्लिक करते हैं। वही ओनब्लूर का सच है। अंतर यह है कि onblur में आग लग जाएगी कि आपने क्षेत्र में कुछ भी बदला या नहीं। यह संभव है कि ENTER इनमें से एक या दोनों को आग लगा देगा, लेकिन आपको नहीं पता होगा कि यदि आप अप्रत्याशित सबमिट्स को रोकने के लिए अपने रूपों में ENTER को अक्षम करते हैं।


4

onBlur तब होता है जब आपका ध्यान प्रश्न क्षेत्र में नहीं रहता है।

Onblur प्रॉपर्टी onBlur इवेंट हैंडलर कोड, यदि कोई हो, जो कि वर्तमान तत्व पर मौजूद है, लौटाता है।

onChange है जब फ़ील्ड का मान बदलता है।


4

मुझे लगता है कि यह ध्यान रखना महत्वपूर्ण है कि onBlur () की परवाह किए बिना आग।

यह एक सहायक धागा है, लेकिन केवल एक चीज यह स्पष्ट नहीं करती है कि onBlur () हर एक बार आग लगाएगा।

onChange () केवल तभी बदलेगा जब मूल्य बदल जाएगा।


3

onChange तब होता है जब किसी फ़ील्ड में कुछ परिवर्तन होता है उदा, आप किसी पाठ इनपुट में कुछ लिखते हैं।

onBlur तब होता है जब आप किसी फ़ील्ड से ध्यान हटाते हैं, जैसे कि आप एक टेक्स्ट इनपुट में लिख रहे थे और आपने उसे क्लिक कर दिया है।

तो वास्तव में वे लगभग एक ही चीज हैं, लेकिन onChange के लिए जिस तरह से onBlur व्यवहार करता है उस इनपुट को बदलने की जरूरत है।

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