प्राइमर: एक HTML चेकबॉक्स indeterminate
के रूप में सेट किया जा सकता है, जो इसे न तो चेक किया गया है और न ही अनचेक किया गया है। यहां तक कि इस अनिश्चित स्थिति में, अभी भी एक अंतर्निहित बूलियन checked
राज्य है।अनिश्चित चेकबॉक्स के साथ ब्राउज़र अंतरों से निपटने के लिए कैसे करें
जब एक अनिश्चित चेकबॉक्स क्लिक किया जाता है, यह अपने indeterminate
राज्य खो देता है। ब्राउज़र (फ़ायरफ़ॉक्स) के आधार पर, यह checked
संपत्ति को अतिरिक्त रूप से टॉगल कर सकता है।
This jsfiddle स्थिति को दर्शाता है। फ़ायरफ़ॉक्स में, चेकबॉक्स में से किसी एक पर क्लिक करने से उन्हें एक बार प्रारंभिक अंतर्निहित checked
स्थिति टॉगल करनी पड़ती है। आईई में, checked
संपत्ति पहले क्लिक के लिए अकेली रह गई है।
मैं सभी ब्राउज़रों को ऐसा व्यवहार करना चाहूंगा, भले ही इसका मतलब अतिरिक्त जावास्क्रिप्ट हो। दुर्भाग्य से, indeterminate
संपत्ति से पहले झूठी पर सेट है onclick
हैंडलर (या onchange
और jQuery change
) कहा जाता है, तो मैं पहचान नहीं कर सकता यह एक indeterminate
चेकबॉक्स या नहीं पर एक क्लिक के कहा जाता है या नहीं।
mouseup
और keyup
(स्पेस बार टॉगल के लिए) की घटनाओं से पहले indeterminate
राज्य दिखाते हैं, लेकिन मैं नहीं बल्कि नहीं कि विशिष्ट होना चाहते हैं: यह कमजोर लगती है।
मैं चेकबॉक्स (data-indeterminate
या इसी तरह) पर एक अलग संपत्ति को बनाए रख सकता था, लेकिन मैं जानना चाहता था कि कोई आसान समाधान है या नहीं, और/या यदि अन्य लोगों के समान समस्याएं हैं।
मुझे लगता है कि डेटा जाने का रास्ता हो सकता है। –
धन्यवाद जेम्स। एचआरएम, कठिन भीड़। – aaaidan
खिड़कियों के लिए सफारी भी पहले क्लिक के लिए अकेले 'चेक' छोड़ देता है –