मैं जांचना चाहता हूं कि क्या कोई चेकबॉक्स अनियंत्रित हो गया है, जब कोई उपयोगकर्ता उस पर क्लिक करता है। इसका कारण यह है क्योंकि जब कोई उपयोगकर्ता चेकबॉक्स अनचेक करता है तो मैं एक सत्यापन करना चाहता हूं। क्योंकि कम से कम एक चेकबॉक्स को जांचना होगा। इसलिए यदि वह अंतिम को अनचेक करता है, तो यह स्वचालित रूप से फिर से खुद को जांचता है।
JQuery के साथ मैं आसानी से पता लगा सकता हूँ कि यह जाँच की गई है या नहीं:
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
लेकिन मैं वास्तव में केवल एक स्टेटमेंट रखना चाहता हूं जो चेक करता है कि क्या चेकबॉक्स अभी अनियंत्रित हुआ है।
इसलिए मैंने सोचा कि मैं निम्नलिखित कोड के साथ ऐसा कर सकता हूं:
$('#check2').click(function() {
if($(this).not(':checked'))
alert('unchecked');
else
alert('checked');
});
लेकिन यह हमेशा 'अनियंत्रित' संदेश दिखाएगा। नहीं वास्तव में मैं क्या उम्मीद कर रहा था ...
डेमो: http://jsfiddle.net/tVM5H/
तो आखिरकार मुझे कुछ चाहिए:
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
लेकिन स्पष्ट रूप से यह काम नहीं करता है। मैं इसके बजाय पहले उदाहरण का उपयोग नहीं करना चाहता, क्योंकि तब मुझे एक अनावश्यक 'और' बयान देना होगा, जब मुझे केवल 'एक' कथन की आवश्यकता होगी।
तो पहली बात, क्या यह एक jQuery बग है? मेरे कारण यह अप्रत्याशित व्यवहार है। और दूसरा, किसी को भी एक अच्छा विकल्प के लिए किसी भी आईडी?