दिलचस्प पोस्ट
सी ++ 11 धागा-सुरक्षित कतार मैं ग्रहण से चलाने वाले प्रोग्रामों के लिए डिफ़ॉल्ट JVM तर्कों को कैसे निर्दिष्ट कर सकता हूं? जावा: आदिम डेटा प्रकारों का सरणी autobox नहीं करता है Google Chrome एक्सटेंशन – CSS के साथ स्थानीय चित्र लोड नहीं किए जा सकते यूटीएफ -8 और यूटीएफ -16 के बीच का अंतर? UINavigationBar में UIBarButtonItem की स्थिति बदलें नया टैब या विंडो में लिंक खोलें दिए गए समूहियड / आर्टिफैक्ट आईडी के लिए नवीनतम आर्टिफैक्ट संस्करण प्राप्त करने के लिए Nexus बाकी एपीआई का उपयोग करना Django क्वेरी है कि विभिन्न श्रेणियों से सबसे हाल के ऑब्जेक्ट प्राप्त करें डेटाटेल में एक्सेल शीट को पढ़ने का सर्वोत्तम / सबसे तेज़ तरीका है? PHP में cURL का उपयोग करने के लिए प्रतिक्रिया कैसे प्राप्त करें डीजेंगो क्लास-आधारित विचारों पर अनुमति_रेक्वियर सजावट का उपयोग कैसे करें MySQL आउटफाइल में निर्यात: सीएसवी भागने वाले वर्ण HTML तालिका के लिए JSON वस्तुओं को पार्स करना Android सूचीदृश्य चयनित आइटम रहने हाइलाइट किया गया

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

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

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

वेब के समाधान से एकत्रित समाधान "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>