2013-07-02 8 views
418

मैं, मैं एक अतिरिक्त चेकबॉक्स फ़ील्ड जोड़ी मेरा पेज में कुछ इनपुट पाठ क्षेत्रों, मैं जावास्क्रिप्ट setVal समारोह का उपयोग कर संपादित करने के लिए उनके मूल्यों को प्रदर्शित कर रहा हूँ, मुझे एक मूल्य के पारित कर दिया,jquery का उपयोग कर चेकबॉक्स को चेक/अनचेक करें?

यहाँ मैं यह है कि अगर value == 1, तो जाँच करना चाहते हैं यह चेकबॉक्स अन्यथा अनचेक किया जाना चाहिए,

मैंने इसे दो divs का उपयोग करने के रूप में किया, लेकिन मुझे इसके साथ सहज महसूस नहीं हो रहा है, क्या कोई अन्य समाधान है?

if(value == 1) { 
    $('#uncheck').hide(); 
    $('#check').show(); 
} else{ 
    $('#uncheck').show(); 
    $('#check').hide(); 
} 

उत्तर

917

jQuery के लिए 1.6+:

.attr() संपत्तियों के लिए हटा दिया गया है;

$('#myCheckbox').prop('checked', true); // Checks it 
$('#myCheckbox').prop('checked', false); // Unchecks it 

jQuery < 1.6 के लिए:: के रूप में के बजाय नया .prop() फ़ंक्शन का उपयोग

जांच करने के लिए/एक चेकबॉक्स का चयन रद्द, विशेषता checked का उपयोग करें और है कि बदल देते हैं। jQuery के साथ आप कर सकते हैं:

<input type="checkbox" id="myCheckbox" checked="checked" /> <!-- Checked --> 
<input type="checkbox" id="myCheckbox" /> <!-- Unchecked --> 

हालांकि, अगर आप .attr() विधि भरोसा नहीं कर सकते का मूल्य प्राप्त करने के लिए:

$('#myCheckbox').attr('checked', true); // Checks it 
$('#myCheckbox').attr('checked', false); // Unchecks it 

कारण आप जानते हैं, HTML में, यह कुछ ऐसा दिखाई देगा चेकबॉक्स (यदि आपको आवश्यकता है)। आपको .prop() विधि में भरोसा करना होगा।

+40

एक तत्व 'जब तक कि यह है के रूप में माना जाता है checked' 'चेक किए गए' की विशेषता, भले ही उसके पास कोई मूल्य न हो या मूल्य 'झूठी' या जो कुछ भी हो। तो '$ ('# mycheckbox')। Attr ('चेक', झूठा); 'अनचेक नहीं करेगा, आपको' $ (' # mycheckbox ') की आवश्यकता है। RemoveAttr (' चेक '); '। – xpy

+4

@xpy '.attr (" चेक किया गया ", झूठा); 'मेरे ब्राउज़र में काम करता है। –

+1

@DanielCook '.attr (" चेक किया गया ", झूठा); 'मेरे फ़ायरफ़ॉक्स डेवलपर संस्करण v41.0a2 में काम करता है, लेकिन यह सामान्य फ़ायरफ़ॉक्स v39 और मेरे क्रोम v43 पर नहीं है। – xpy

23

आप चेकबॉक्स के राज्य मूल्य के आधार पर सेट कर सकते हैं:

$('#your-checkbox').prop('checked', value == 1); 
+0

यह मेरे लिए काम नहीं करता है, मान परिभाषित नहीं किया गया है। – Dave

52

आप इस के लिए उपयोग कर सकते हैं prop() jQuery 1.6 पहले के रूप में, .attr() विधि कभी कभी जब कुछ पुन: प्राप्त करने को ध्यान में संपत्ति मूल्यों ले लिया गुण, जो असंगत व्यवहार का कारण बन सकता है। jQuery 1.6 के रूप में, .prop() विधि संपत्ति मूल्यों को स्पष्ट रूप से पुनर्प्राप्त करने का एक तरीका प्रदान करती है, जबकि .attr() विशेषताएँ पुनर्प्राप्त करती है।

var prop=false; 
if(value == 1) { 
    prop=true; 
} 
$('#checkbox').prop('checked',prop); 

या बस,

$('#checkbox').prop('checked',(value == 1)); 

स्निपेट

$(document).ready(function() { 
 
    var chkbox = $('.customcheckbox'); 
 
    $(".customvalue").keyup(function() { 
 
    chkbox.prop('checked', this.value==1); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<h4>This is a domo to show check box is checked 
 
if you enter value 1 else check box will be unchecked </h4> 
 
Enter a value: 
 
<input type="text" value="" class="customvalue"> 
 
<br>checkbox output : 
 
<input type="checkbox" class="customcheckbox">

संबंधित मुद्दे