यदि कोई चेकबॉक्स jQuery के साथ चेक किया गया हो तो परीक्षण करना


588

यदि चेकबॉक्स चेक किया गया है, तो मुझे केवल 1 के रूप में मान प्राप्त करने की आवश्यकता है; अन्यथा, मुझे इसे 0. प्राप्त करने की आवश्यकता है। मैं इसे jQuery का उपयोग कैसे करूं?

$("#ans").val() हमेशा मुझे इस मामले में एक अधिकार देगा:

<input type="checkbox" id="ans" value="1" />

2
.val () मान विशेषता प्राप्त करना है, चेक की स्थिति नहीं। मूल्य विशेषता कुछ भी हो सकती है, इसे बूलियन होने की आवश्यकता नहीं है।
पाब्लो पाज़ोस

यदि आप अभी भी आस-पास हैं, तो आप आधुनिक सॉफ़्टवेयर के लिए स्वीकृत उत्तर को अपडेट कर सकते हैं ... बहुत सारे लोग अभी भी इस प्रश्न को देखते हैं
xaxxon

जवाबों:


1008

.is(':checked')यह निर्धारित करने के लिए उपयोग करें कि क्या इसकी जाँच की गई है या नहीं, और फिर उसी के अनुसार अपना मूल्य निर्धारित करें।

अधिक जानकारी यहाँ।


1
इसके अलावा, जब आप $ ("# आईडी") करते हैं। ("चेक किया गया") यदि किसी खंड में आप सही या गलत होंगे, तो रिटर्न पर / बंद करके, और आप इसे अपनी बैक-एंड स्क्रिप्ट पर भेज सकते हैं और जो चाहो करो।
ज़ानॉल्डर

1
संभवतः यह आजकल कोई मायने नहीं रखता है: ReSharper (मुझे लगता है) एक चेतावनी को आउटपुट करता है " छद्म श्रेणी 'की जाँच की गई' Internet Explorer 8.0 के साथ संगत नहीं है "।
उवे कीम

211
$("#ans").attr('checked') 

यह जाँचने पर आपको बताएगा। चेकबॉक्स को चेक / अनचेक करने के लिए आप दूसरे पैरामीटर को सही / गलत का उपयोग कर सकते हैं।

$("#ans").attr('checked', true);

प्रति टिप्पणी, उपयोग prop करने के बजाय attrजब उपलब्ध। उदाहरण के लिए:

$("#ans").prop('checked')

90

महज प्रयोग करें $(selector).is(':checked')

यह एक बूलियन मान लौटाता है।


56
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;

@ लेनिक टेरिनरी सिंटैक्स का उपयोग करके अपना मान सेट करने के लिए, जैसे:: a = ischecked? 1: 0

21

स्टीफन ब्रिंकमैन का उत्तर उत्कृष्ट है, लेकिन शुरुआती के लिए अधूरा है (चर असाइनमेंट को छोड़ देता है)। केवल स्पष्ट करने हेतु:

// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;

यह इस तरह काम करता है:

 var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;

उदाहरण:

var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );

अलर्ट 'नहीं'

यदि यह मददगार है, तो कृपया स्टीफन ब्रिंकमैन के उत्तर को आगे बढ़ाएं।



15

मैंने पहले भी यही समस्या पाई है, आशा है कि यह समाधान आपकी मदद कर सकता है। पहले, अपने चेकबॉक्स में एक कस्टम विशेषता जोड़ें:

<input type="checkbox" id="ans" value="1" data-unchecked="0" />

मान पाने के लिए jQuery एक्सटेंशन लिखें:

$.fn.realVal = function(){
    var $obj = $(this);
    var val = $obj.val();
    var type = $obj.attr('type');
    if (type && type==='checkbox') {
        var un_val = $obj.attr('data-unchecked');
        if (typeof un_val==='undefined') un_val = '';
        return $obj.prop('checked') ? val : un_val;
    } else {
        return val;
    }
};

चेक-बॉक्स मान प्राप्त करने के लिए कोड का उपयोग करें:

$('#ans').realVal();

आप यहां परीक्षण कर सकते हैं


10
... क्योंकि jQuery को "द राइट द कम डू" लाइब्रेरी के रूप में जाना जाता है
myshadowself

लंबी कहानी जो आप दूर तक गए हैं JQUERY चाहते हैं कि डेवलपर कम लिखें और अतिरिक्त काम करें। सरल समस्या सरल समाधान के लायक है
ShapCyber

हाँ, सहमत हैं, कम लिखें, अधिक करें। आप एक बार एक्सटेंशन लिखते हैं, और बाकी समय के लिए, आप केवल API $ (someradio) .realVal () कहते हैं, आपको कई बार एक्सटेंशन लिखने की आवश्यकता नहीं है।
अल्फकेविन

आपको एक बार भी एक्सटेंशन लिखने की जरूरत नहीं पड़ी, 'कई बार' में कोई बात नहीं! ऊ
कोज


7
<input type="checkbox" id="ans" value="1" />

जेकरी: var test= $("#ans").is(':checked') और यह सही या गलत है।

अपने समारोह में:

$test =($request->get ( 'test' )== "true")? '1' : '0';


4

उपयोग:

$("#ans option:selected").val()

यदि यह चयनित नहीं है, तो पहला भाग कुछ भी नहीं लौटाएगा, है ना?
xaxxon

@ सेंथिल, ओपी एक चयनित चेकबॉक्स का मूल्य प्राप्त करने के लिए नहीं कह रहा है, बल्कि return 1यदि वह चयनित है
ओम शंकर

4
function chkb(bool){
if(bool)
return 1;
return 0;
}

var statusNum=chkb($("#ans").is(':checked'));

यदि चेकबॉक्स की जाँच की जाती है, और 0 यदि नहीं है, तो statusNum 1 के बराबर होगा।

संपादित करें: आप समारोह में भी डोम जोड़ सकते हैं।

function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}

var statusNum=chkb($("#ans"));

4

उपयोगकर्ता द्वारा बटन पर क्लिक करने पर मुझे हाल ही में एक ऐसे मामले के माध्यम से आया है जहां मुझे चेकबॉक्स के चेक मूल्य की आवश्यकता है। ऐसा करने का एकमात्र उचित तरीका prop()विशेषता का उपयोग करना है।

var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;

यह मेरे मामले में काम करता है शायद किसी को इसकी आवश्यकता होगी।

जब मैंने कोशिश की है तो .attr(':checked')यह लौटा है checkedलेकिन मुझे बूलियन मान चाहिए था और .val()विशेषता का मूल्य लौटाया value


4

कई विकल्प हैं जैसे कि ...।

 1. $("#ans").is(':checked') 
 2. $("#ans:checked")
 3. $('input:checkbox:checked'); 

अगर ये सभी विकल्प सही साबित होते हैं, तो आप अकस्मात मूल्य निर्धारित कर सकते हैं।


पहला होना चाहिए (': चेक किया हुआ'), अन्यथा काम नहीं करता है।
आर्य लिवशिन

2

इसे इस्तेमाल करे

$('input:checkbox:checked').click(function(){
    var val=(this).val(); // it will get value from checked checkbox;
})

यहाँ झंडा सच है अगर जाँच की जाए तो गलत

var flag=$('#ans').attr('checked');

फिर से यह चबाया जाएगा

$('#ans').attr('checked',true);


0

आप इन दोनों विधि द्वारा मूल्य (सच्चा / गलत) प्राप्त कर सकते हैं

$("input[type='checkbox']").prop("checked");
$("input[type='checkbox']").is(":checked");

0

पहले मान को जांचा जाता है

$("#ans").find("checkbox").each(function(){
    if ($(this).prop('checked')==true){ 
    var id = $(this).val()
    }
});

एल्स 0 मान सेट करें


0

यदि आप चेक किए गए पूर्णांक मान चाहते हैं या नहीं, तो प्रयास करें:

$("#ans:checked").length

0

आप इसे इस तरह से कर सकते हैं:

$('input[id=ans]').is(':checked');     
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.