दिलचस्प पोस्ट
कैसे दो यादृच्छिक रिकॉर्ड Django के साथ पाने के लिए मोबाइल वेब: भौतिक पिक्सेल आकार कैसे प्राप्त करें? C ++ CLI त्रुटि C3767: उम्मीदवार फ़ंक्शंस (अभिगम) सुलभ नहीं हैं क्या यह नोड.जेएस के भीतर से बाहरी प्रोग्राम को निष्पादित करना संभव है? शरीर में तेजी के साथ एक POST अनुरोध कैसे भेजें * का प्रयोग कभी भी उचित हो सकता है? PHP: सरणी में विभाजित स्ट्रिंग, जैसे कोई सीमांकक के साथ विस्फोट WPF में एक बटन माउसओवर के लिए पृष्ठभूमि कैसे बदलें? क्या मुझे सीएसटीडींट का उपयोग करना चाहिए? Matplotlib: विभिन्न रंगों के साथ कई डिस्कनेक्ट किए गए लाइन खंडों को प्लॉट करते हुए मैं वर्तमान उपयोगकर्ता के "एप्लिकेशन डेटा" फ़ोल्डर का पथ कैसे प्राप्त करूं? UIBezierPath घटाएं पथ कमांड लाइन से एक विशिष्ट फ़ोल्डर में एक्सक्रैपिव उत्पन्न करें इंस्टेंस सदस्य को टाइप पर इस्तेमाल नहीं किया जा सकता आवेदन। ओपनफॉर्म। गणना = 0 हमेशा

Onclick / onchange ईवेंट से HTML चेकबॉक्स का मूल्य प्राप्त करना

<input type="checkbox" onclick="onClickHandler()" onchange="onChangeHandler()" /> 

onClickHandler और / या onClickHandler भीतर से, मैं कैसे निर्धारित कर सकते हैं कि क्या चेकबॉक्स की नई स्थिति है?

Solutions Collecting From Web of "Onclick / onchange ईवेंट से HTML चेकबॉक्स का मूल्य प्राप्त करना"

संक्षिप्त जवाब:

click ईवेंट का उपयोग click , जो तब तक नहीं होगा जब तक कि मूल्य अपडेट नहीं हो जाता है, और जब आप इसे चाहते हैं तब आग लग जाती है:

 <label><input type='checkbox' onclick='handleClick(this);'>Checkbox</label> function handleClick(cb) { display("Clicked, new value = " + cb.checked); } 

लाइव उदाहरण | स्रोत

लंबा जवाब:

change ईवेंट हैंडलर को तब तक नहीं बुलाया जाता जब तक checked राज्य को अपडेट नहीं किया जाता है ( लाइव उदाहरण | स्रोत ), लेकिन क्योंकि (टिम ब्यूई टिप्पणी में बताते हैं) आईई change घटना को तब तक नहीं रोकता जब तक कि चेकबॉक्स फोकस खो देता है, आप डॉन अधिसूचना को सक्रिय रूप से नहीं मिला इससे भी बदतर, IE के साथ यदि आप इसे अपडेट करने के लिए चेकबॉक्स (बजाय चेकबॉक्स के बजाय) के लिए एक लेबल क्लिक करते हैं, तो आप इस धारणा को प्राप्त कर सकते हैं कि आप पुराने मान प्राप्त कर रहे हैं (लेबल पर क्लिक करके इसे यहां पर देखें: लाइव उदाहरण | स्रोत ) इसका कारण यह है कि अगर चेकबॉक्स फोकस होता है, तो लेबल पर क्लिक करने से फ़ोकस दूर होता है, पुरानी कीमत के साथ change घटना को फायर करता है, और फिर click नए मान को सेट करना होता है और चेकबॉक्स पर फ़ोकस को वापस सेट करता है। बहुत ज्यादा उलझन।

लेकिन आप उस अप्रियता से बच सकते हैं यदि आप इसके बजाय click करते हैं

मैंने DOM0 के हैंडलर ( onxyz एट्रिब्यूट्स) का इस्तेमाल किया है, क्योंकि आपने जो भी पूछा है, लेकिन रिकार्ड के लिए, मैं onxyz एट्रिब्यूट्स का उपयोग करने के बजाय कोड (DOM2 के एडएवेंटलिस्टर, या आईई के पुराने संस्करणों में attachEvent को attachEvent में आमतौर पर हैंडलर को जोड़ने का attachEvent देता onxyz । इससे आपको एक ही तत्व में कई हेन्डलर संलग्न करने की सुविधा मिलती है और आपको अपने सभी संचालकों को वैश्विक फ़ंक्शन बनाने से बचने देता है।


इस उत्तर के पहले संस्करण में इस कोड को handleClick के लिए इस्तेमाल किया गया है:

 function handleClick(cb) { setTimeout(function() { display("Clicked, new value = " + cb.checked); }, 0); } 

लक्ष्य मूल्य को देखने से पहले क्लिक को पूरा करने की अनुमति देने के लिए लग रहा था। जहाँ तक मुझे पता है, ऐसा करने का कोई कारण नहीं है, और मुझे पता नहीं क्यों मैंने किया। मान को click हैंडलर के नाम से बदल दिया गया है। वास्तव में, इस बारे में कल्पना काफी स्पष्ट है setTimeout बिना संस्करण पूरी तरह से अच्छी तरह से काम करता है हर ब्राउज़र में (यहां तक ​​कि आईई 6) काम करता है। मैं केवल मान सकता हूँ कि मैं किसी अन्य मंच के बारे में सोच रहा था जहां घटना के बाद तक बदलाव नहीं किया जाता है। किसी भी स्थिति में, HTML चेकबॉक्स के साथ ऐसा करने का कोई कारण नहीं है।

इसे इस्तेमाल करो

 <input type="checkbox" onclick="onClickHandler()" id="box" /> <script> function onClickHandler(){ var chk=document.getElementById("box").value; //use this value } </script>