सवाल कैसे जांचें कि jQuery में चेकबॉक्स चेक किया गया है या नहीं?


मुझे जांच करने की ज़रूरत है checked एक चेकबॉक्स की संपत्ति और jQuery का उपयोग कर चेक की गई संपत्ति के आधार पर एक क्रिया करें।

उदाहरण के लिए, यदि आयु चेकबॉक्स चेक किया गया है, तो मुझे आयु दर्ज करने के लिए टेक्स्टबॉक्स दिखाना होगा, अन्यथा टेक्स्टबॉक्स छुपाएं।

लेकिन निम्नलिखित कोड लौटाता है false डिफ़ॉल्ट रूप से:

if ($('#isAgeSelected').attr('checked'))
{
    $("#txtAge").show();
}
else
{
    $("#txtAge").hide();
}

मैं सफलतापूर्वक कैसे पूछता हूं checked संपत्ति?


3921


मूल


यहां jQuery का उपयोग करके ऐसा करने के कुछ अन्य तरीकों की जांच करें stackoverflow.com/a/22019103/1868660 - Subodh Ghulaxe
$('#isAgeSelected').change(function(){ alert($('#chkSelect').attr('checked')); }); - Khaled.K
$ ('# isAgeSelected') संग्रह लौटाता है, इसे इसके साथ प्रतिस्थापित करें: $ ('# isAgeSelected') [0]। चेक किया गया - zamoldar
क्यों नहीं $('#isAgeSelected').checked - mmcrae
चूंकि jQuery चयनकर्ता सरणी लौटाते हैं, तो आप इसका उपयोग कर सकते हैं $('#isAgeSelected')[0].checked - Felipe Leão


जवाब:


मैं चेक की गई संपत्ति को सफलतापूर्वक कैसे पूछूं?

checked एक चेकबॉक्स की संपत्ति डीओएम तत्व आपको देगा checked तत्व की स्थिति।

अपने मौजूदा कोड को देखते हुए, आप ऐसा कर सकते हैं:

if(document.getElementById('isAgeSelected').checked) {
    $("#txtAge").show();
} else {
    $("#txtAge").hide();
}

हालांकि, इसका उपयोग करने के लिए ऐसा करने का एक बहुत ही शानदार तरीका है toggle:

$('#isAgeSelected').click(function() {
    $("#txtAge").toggle(this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="isAgeSelected"/>
<div id="txtAge" style="display:none">Age is something</div>


3102



मैंने उपरोक्त शर्त भी कोशिश की है, लेकिन यह केवल झूठी वापसी करता है - Prasad
। $ ( "# TxtAge") (this.checked) को टॉगल करके चालू; बिल्कुल $ ("# txtAge") के समान है। टॉगल ()। इसलिए, अगर किसी कारण से राज्य की जांच की जाती है और अगला div छुपा हुआ है (आपने अपने ब्राउज़र में बैक बटन क्लिक किया है) - यह अपेक्षित काम नहीं करेगा। - Maksim Vi.
@ सिरमिसु - अगर आपने जवाब को नीचे से पढ़ा था, तो आपने देखा होगा कि मेरा संपादन इसका उपयोग नहीं करता है is(':checked') व्यापार। - karim79
सेट करने के लिए: $ ("# chkmyElement") [0] .checked = true; प्राप्त करने के लिए: अगर ($ ("# chkmyElement") [0]। चेक किया गया) - JJ_Coder4Hire
यह सवाल का जवाब नहीं है। this.checked ओपी के रूप में पूछताछ के रूप में jQuery नहीं है। साथ ही, यह केवल तब काम करता है जब उपयोगकर्ता चेकबॉक्स पर क्लिक करता है, जो प्रश्न का हिस्सा नहीं है। सवाल फिर से है, How to check whether a checkbox is checked in jQuery? किसी भी समय चेकबॉक्स पर और jQuery में क्लिक किए बिना या बिना। - Marc Compte


JQuery का प्रयोग करें है() समारोह:

if($("#isAgeSelected").is(':checked'))
    $("#txtAge").show();  // checked
else
    $("#txtAge").hide();  // unchecked

1550



यदि आपको अवधि, आसान इत्यादि की आवश्यकता नहीं है, तो आप इसका उपयोग कर सकते हैं $("#txtAge").toggle($("#isAgeSelected").is(':checked')) - naor
+1 चेक की गई संपत्ति पाने के विभिन्न तरीके हैं। कुछ हैं यहां सूचीबद्ध - user3199690
@NickG वास्तव में jQuery कर देता है लीजिये : दृश्य चयनकर्ता - hvdd
@ hvdd मुझे पता है - मैंने कहा "संपत्ति", चयनकर्ता नहीं। - NickG
@ निक ... मैं समझ नहीं पा रहा हूं कि आपका क्या मतलब है। jQuery नहीं है .visible "संपत्ति" (संपत्ति? तुम्हारा मतलब है तरीका?) क्योंकि कोई HTML तत्व नहीं है दिखाई संपत्ति। उनके पास एक display  शैली की संपत्ति और यह चालू / बंद से थोड़ा अधिक जटिल है। - xDaizu


JQuery का प्रयोग> 1.6

<input type="checkbox" value="1" name="checkMeOut" id="checkMeOut" checked="checked" />

// traditional attr
$('#checkMeOut').attr('checked'); // "checked"
// new property method
$('#checkMeOut').prop('checked'); // true

नई संपत्ति विधि का उपयोग करना:

if($('#checkMeOut').prop('checked')) {
    // something when checked
} else {
    // something else when not
}

473



मैं जानना चाहता हूं कि यह जवाब क्यों नहीं है ... यदि आप jquery का उपयोग कर रहे हैं, तो .prop विधि है डिज़ाइन किया गया प्रोप की जांच करने का तरीका। .. ... यदि आप ऐसा करने जा रहे हैं .is(":checked") दृष्टिकोण, यह ठीक है, लेकिन यह jquery का उपयोग करके इसे करने का डिज़ाइन तरीका नहीं है। सही? - dsdsdsdsd
@dsdsdsdsd संभवतः क्योंकि इसे अभी तक एक और पीछे की संगतता चरण की आवश्यकता है (मुझे अभी एक ही समस्या का सामना करना पड़ रहा है)। - user98085
.is(":checked") तथा .prop("checked") jQuery में एक ही परिणाम प्राप्त करने के दोनों वैध तरीके हैं, .is सभी संस्करणों में काम करेगा, .prop 1.6+ की आवश्यकता है - gnarf
यदि तुम प्रयोग करते हो .attr('checked') jQuery 1.11.3 में, आप अपरिभाषित हो जाते हैं, जहां आप उपयोग करते हैं .prop('checked'), आपको सच / गलत मिलेगा। मैं नहीं देखता कि उन्होंने इसे इस तरह से काम करने के लिए क्यों बदल दिया जब पुराने ब्राउज़र बाद के jQuery संस्करणों का समर्थन नहीं कर सकते .prop() और इसलिए जरूरत है .attr()। केवल बचत अनुग्रह यह है कि पुराने ब्राउज़र (यानी आईई 8) कुछ भी समर्थन नहीं कर सकते> jQuery 1.9। उम्मीद है कि उन्होंने ऐसा नहीं किया (बनाओ .attr('checked') = अपरिभाषित) उस संस्करण में! सौभाग्य से, हमेशा होता है this.checked। - vapcguy


jQuery 1.6+

$('#isAgeSelected').prop('checked')

jQuery 1.5 और नीचे

$('#isAgeSelected').attr('checked')

JQuery का कोई संस्करण

// Assuming an event handler on a checkbox
if (this.checked)

सभी क्रेडिट जाता है जियान


177



तकनीकी तौर पर, this.checked सीधे जावास्क्रिप्ट का उपयोग कर रहा है। लेकिन मुझे उस क्रॉस-jQuery-संस्करण का जवाब पसंद है! - vapcguy


मैं इसका उपयोग कर रहा हूं और यह बिल्कुल ठीक काम कर रहा है:

$("#checkkBoxId").attr("checked") ? alert("Checked") : alert("Unchecked");

नोट: यदि चेकबॉक्स चेक किया गया है तो यह सत्य वापस लौटाएगा अन्यथा अपरिभाषित, इसलिए "सत्य" मान के लिए बेहतर जांच करें।


148



यह काम करता है क्योंकि $ ("# checkkBoxId")। Attr ("चेक") "चेक" या "" खाली स्ट्रिंग) देता है। और एक खाली स्ट्रिंग झूठी है, गैर खाली स्ट्रिंग सच है, सच्चाई / झूठी मूल्यों के बारे में देखें docs.nodejitsu.com/articles/javascript-conventions/... - Adrien Be
Jquery 2.1.x द्वारा यह हमेशा चेक किया जाता है अगर इसे डिफ़ॉल्ट रूप से चेक किया जाता है ... मुझे नहीं पता कि यह व्यवहार जानबूझकर है, लेकिन यह निश्चित रूप से काम नहीं करता है (मुझे लगता है कि यह एक बग है) ... वैल () या तो काम नहीं करता है, यह "चालू" रहता है। प्रोप () ठीक से काम कर रहा है और dom.checked या तो काम करता है। - inf3rno
और समस्या तब आती है जब आपको पुराने ब्राउज़र का समर्थन करना होता है .attr()! अगर वे केवल अकेले ही अकेले चले गए .... यहां एक और जवाब मिला है कि आप अभी उपयोग कर सकते हैं this.checked एक क्रॉस-jQuery समाधान के लिए, क्योंकि यह मूल रूप से जावास्क्रिप्ट है। - vapcguy


उपयोग:

<input type="checkbox" name="planned_checked" checked id="planned_checked"> Planned

$("#planned_checked").change(function() {
    if($(this).prop('checked')) {
        alert("Checked Box Selected");
    } else {
        alert("Checked Box deselect");
    }
});

    $("#planned_checked").change(function() {
        if($(this).prop('checked')) {
            alert("Checked Box Selected");
        } else {
            alert("Checked Box deselect");
        }
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" name="planned_checked" checked id="planned_checked"> Planned


115





JQuery 1.6 के बाद से, व्यवहार jQuery.attr() बदल गया है और उपयोगकर्ताओं को प्रोत्साहित किया जाता है कि वे तत्व की जांच की गई स्थिति को पुनः प्राप्त करने के लिए इसका उपयोग न करें। इसके बजाय, आपको उपयोग करना चाहिए jQuery.prop():

$("#txtAge").toggle(
    $("#isAgeSelected").prop("checked") // For checked attribute it returns true/false;
                                        // Return value changes with checkbox state
);

दो अन्य संभावनाएं हैं:

$("#txtAge").get(0).checked
$("#txtAge").is(":checked")

105



किसी कारण से, प्रोप ("चेक") ने मेरे लिए काम किया, लेकिन नहीं है (': चेक किया गया') - BraveNewMath
और $ ("# txtAge") [0]। चेक किया गया - Yevgeniy Afanasyev


यह मेरे लिए काम किया:

$get("isAgeSelected ").checked == true

कहा पे isAgeSelected नियंत्रण की आईडी है।

इसके अलावा, @ करीम 7 9 उत्तर ठीक काम करता है। मुझे यकीन नहीं है कि जब मैंने इसका परीक्षण किया था तब मुझे क्या याद आया।

नोट, यह उत्तर माइक्रोसॉफ्ट अजाक्स का उपयोग करता है, jQuery नहीं


82