मैं इसके लिए एक सामान्यीकृत समाधान की तलाश कर रहा हूं।
एक ही नाम के साथ 2 रेडियो प्रकार के इनपुट पर विचार करें। प्रस्तुत होने पर, जो चेक किया जाता है वह उस मान को निर्धारित करता है जो फॉर्म के साथ भेजा जाता है:
<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />
जब रेडियो बटन को डी-सेलेक्ट किया जाता है तो परिवर्तन की घटना में आग नहीं लगती है। इसलिए यदि मान वाला रेडियो = "1" पहले से ही चुना गया है और उपयोगकर्ता दूसरे का चयन करता है, तो handleChange1 () नहीं चलता है। यह एक समस्या प्रस्तुत करता है (वैसे भी मेरे लिए) इसमें कोई घटना नहीं है जहां मैं इस डी-चयन को पकड़ सकता हूं।
मैं क्या चाहूंगा कि चेकबॉक्स समूह मान के लिए ऑनकॉन्ग इवेंट या वैकल्पिक रूप से ऑनकच इवेंट के लिए एक वर्कअराउंड है जो न केवल तब जांचता है जब एक रेडियो चेक किया जाता है, बल्कि जब यह अनचेक किया जाता है।
मुझे यकीन है कि आप में से कुछ पहले इस समस्या में भाग चुके हैं। कुछ वर्कअराउंड क्या हैं (या आदर्श रूप से इसे संभालने का सही तरीका क्या है)? मैं केवल परिवर्तन की घटना को पकड़ना चाहता हूं, पहले से चेक किए गए रेडियो के साथ-साथ नए चेक किए गए रेडियो तक पहुंचना चाहता हूं।
PS
ऑनक्लिक एक रेडियो की जाँच करने पर इंगित करने के लिए एक बेहतर (क्रॉस-ब्राउज़र) घटना की तरह लगता है, लेकिन यह अभी भी अन-चेक की गई समस्या को हल नहीं करता है।
मुझे लगता है कि यह समझ में आता है कि चेकबॉक्स प्रकार के लिए onchange एक मामले में इस तरह से काम करता है क्योंकि यह उस मूल्य को बदलता है जब आप इसे चेक या अन-चेक करते हैं। काश रेडियो बटन एक सेलेक्ट एलिमेंट के ऑनक्रास की तरह व्यवहार करते लेकिन आप क्या कर सकते हैं ...
myRadios
वाले चर को पढ़ने के लिए नाम विशेषता के साथ प्रत्येक रेडियो बटन पर क्लिक इवेंट हैंडलर स्थापित किए जाते हैंprev
। प्रत्येक क्लिक हैंडलर के भीतर एक तुलना यह तय करने के लिए की जाती है कि क्या क्लिक किया गया रेडियो वही है जिसमें कोई संग्रहीत हैprev
और यदि नहीं तो वर्तमान में क्लिक किया गया रेडियो वहां संग्रहीत है। क्लिक हैंडलर के भीतर, आपके पास पहले से चयनित:prev
और वर्तमान में चयनित रेडियो तक पहुंच है :this