jQuery चेक अगर कोई इनपुट टाइप चेकबॉक्स है?


151

मुझे पता लगाना है कि इनपुट चेकबॉक्स है या नहीं, और निम्नलिखित काम नहीं करता है:

$("#myinput").attr('checked') === undefined

एक बार फिर आपका धन्यवाद!

जवाबों:


333

आप :checkboxjQuery के isफ़ंक्शन के लिए कॉल के साथ छद्म चयनकर्ता का उपयोग कर सकते हैं :

$('#myinput').is(':checkbox')

1
यह वह विधि है जिसका मैं हमेशा उपयोग करता हूं।
Topher Fangio

आप वास्तव में उससे ज्यादा सरल नहीं हो सकते।
काइलफ़ारिस

9
इसके लिए चयनकर्ता इंजन का उपयोग क्यों करें? यह पूरी तरह से अनावश्यक है।
टिम डाउन

7
@ नीचे नीचे मैं आपकी बात लेता हूं कि एक ही बात को पूरा करने के लिए अधिक कुशल तरीके हो सकते हैं। मुझे लगता है कि मुझे यह संस्करण पसंद है क्योंकि कोड बहुत पठनीय है।
केन ब्राउनिंग

2
@KenBrowning: काफी साफ है। मैं 2009 में काफी एंटी- jQuery था, विशेष रूप से सब कुछ के लिए jQuery का नेत्रहीन उपयोग करने का प्रचलित एसओ रवैया; जब से यह संभव था, तो मेरे विचार थोड़े से मधुर हो गए हैं और मैं अपने पतन को पूर्ववत कर दूंगा। हालांकि, मुझे अभी भी लगता है कि मेरे पास एक बिंदु था। वैकल्पिक (जिसे मैं अस्वीकार नहीं कर सकता, वह अधिक क्रिया है):var myInput = $("myinput")[0]; var isCheckbox = myInput.nodeName.toLowerCase() == "input" && myInput.type == "checkbox";
टिम डाउन

22
>>> a=$("#communitymode")[0]
<input id="communitymode" type="checkbox" name="communitymode">
>>> a.type
"checkbox"

या, jQuery की शैली के अधिक:

$("#myinput").attr('type') == 'checkbox'

पूरी तरह से मान्य है। सबसे सरल नहीं है।
काइलफ़ारिस

6
यह jQuery के चयनकर्ता इंजन का उपयोग करके बचाता है, जिसका उपयोग यहां पूरी तरह से अनुचित है। पहला संस्करण बहुत बेहतर है, क्योंकि jQuery के भ्रमित attr()फ़ंक्शन को किसी भी चीज को गड़बड़ाने की किसी भी संभावना से बचा जाता है ।
टिम डाउन

3
@Tim नीचे सही है - आप बदलना चाहिए attr()करने के लिए prop(), afaik। attr()हमेशा ब्राउज़र से "वास्तविक" विशेषता मान (यानी चेक किया गया या नहीं) नहीं मिलता है। ईमानदारी से यकीन नहीं है कि यह मामला क्यों है, लेकिन मैंने थोड़ी देर पहले यह सीखा।
वाकिंगफ्रूट

1
चोम में, आपका दूसरा उदाहरण संवेदनशील है: jsfiddle.net/gtza0uuL । यह .prop के साथ नहीं है, लेकिन मुझे नहीं पता कि क्या यह जियोटेड हो सकता है। नोट: आप केवल .toLowerCase () या तो नहीं कर सकते क्योंकि 'प्रकार' अपरिभाषित हो सकता है।
xr280xr


6

एक गैर- jQuery समाधान एक jQuery समाधान की तरह है:

document.querySelector('#myinput').getAttribute('type') === 'checkbox'

2

इस फ़ंक्शन का उपयोग करें:

function is_checkbox(selector) {
    var $result = $(selector);
    return $result[0] && $result[0].type === 'checkbox';
};

या इस jquery प्लगइन:

$.fn.is_checkbox = function () { return this.is(':checkbox'); };

0
$('#myinput').is(':checkbox')

यह एकमात्र कार्य है, चेकबॉक्स चेक किया गया या नहीं, यह पता लगाने के लिए समस्या को हल करना। यह सही है या गलत, मैं इसे घंटों खोजता हूं और सब कुछ आजमाता हूं, अब इसका काम स्पष्ट हो गया है कि मैं ईडीजी को ब्राउजर और डब्ल्यू 2 यूआई के रूप में उपयोग करता हूं


याद रखें जब आप अपने प्रश्नों और उत्तरों में कोड पेस्ट करते हैं तो कोड रिफ्लेक्टर का उपयोग करें।
एंड्रेस फेलिप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.