2011-11-21 17 views
311

जावास्क्रिप्ट या jQuery का उपयोग कर चेकबॉक्स को चेक/अनचेक किया जा सकता है?जावास्क्रिप्ट के साथ चेकबॉक्स चेक/अनचेक करें?

+1

http://www.google.co.uk/search?q=javascript+html+element+checkbox की – topherg

+1

संभव डुप्लिकेट [संशोधित जावास्क्रिप्ट का उपयोग कर चेकबॉक्स] (http://stackoverflow.com/questions/4733114/modify-checkbox-using-javascript) – mauris

उत्तर

618

जावास्क्रिप्ट:

// Check 
document.getElementById("checkbox").checked = true; 

// Uncheck 
document.getElementById("checkbox").checked = false; 

jQuery (1.6+):

// Check 
$("#checkbox").prop("checked", true); 

// Uncheck 
$("#checkbox").prop("checked", false); 

jQuery (1.5):

// Check 
$("#checkbox").attr("checked", true); 

// Uncheck 
$("#checkbox").attr("checked", false); 
+0

.prop का उपयोग स्थानीय रूप से होस्ट की गई फ़ाइलों के साथ फ़ायरफ़ॉक्स में Jquery 1.11.2 के साथ काम नहीं कर रहा है। .attr करता है। मैंने पूरी तरह से परीक्षण नहीं किया है। यहां कोड है: '' 'personContent.find (" [data-name = '"+ pass.name +"'] ")। बच्चे ('इनपुट')। Attr ('चेक', सत्य); '' –

+2

क्या हमें 'attr' या 'prop' का उपयोग करना चाहिए? – Black

26

जाँच करने के लिए:

document.getElementById("id-of-checkbox").checked = true; 

अनचेक करने के लिए:

document.getElementById("id-of-checkbox").checked = false; 
6

हम के रूप में एक कण चेकबॉक्स चेक कर सकते हैं,

$('id of the checkbox')[0].checked = true 

और से सही का निशान हटाएँ,

$('id of the checkbox')[0].checked = false 
+1

यदि आप केवल एक तत्व चुन रहे हैं तो आपको वास्तव में सरणी अनुक्रमणिका की आवश्यकता नहीं है। लेकिन मुझे लगता है कि अगर आप स्पष्ट होना चाहते हैं। हाहा – Rizowski

+4

@Rizowski आपको मूल HTML तत्व प्राप्त करने के लिए इंडेक्स की आवश्यकता है - jQuery ऑब्जेक्ट्स में "चेक" संपत्ति नहीं है –

+0

लेकिन हम उस बिंदु पर बस jQuery का उपयोग कर सकते हैं – damd

69

महत्वपूर्ण व्यवहार है कि अभी तक का उल्लेख नहीं किया गया है:

प्रोग्रामिंग रूप से को विशेषता की जांच की गई है, चेकबॉक्स की change ईवेंट को आग नहीं देती है।

स्वयं देखें इस बेला में:
http://jsfiddle.net/fjaeger/L9z9t04p/4/

(फिडल क्रोम 46, फ़ायरफ़ॉक्स 41 और IE 11 में परीक्षण)

click() विधि

कुछ दिन तुम अपने आप को मिल सकती है कोड लिखना, जो घटना को निकाल दिया जाता है। विशेष रूप से यह true या false को स्थापित करने की

document.getElementById('checkbox').click(); 

हालांकि, इस चेकबॉक्स की जाँच की स्थिति को टॉगल करता है, बजाय: सुनिश्चित करें कि घटना आग बनाने के लिए, फोन चेकबॉक्स तत्व की click() विधि, इस तरह। याद रखें कि change ईवेंट केवल आग लगाना चाहिए, जब चेक किए गए गुण वास्तव में बदलते हैं।

यह भी jQuery तरह से करने के लिए लागू होता है: विशेषता prop या attr का उपयोग कर की स्थापना, change ईवेंट सक्रिय नहीं है।

एक विशिष्ट मूल्य

आप checked विशेषता परीक्षण कर सकते हैं करने के लिए checked स्थापना click() विधि कॉल करने से पहले।उदाहरण:

function toggle(checked) { 
    var elm = document.getElementById('checkbox'); 
    if (checked != elm.checked) { 
    elm.click(); 
    } 
} 

क्लिक विधि के बारे में यहाँ और अधिक पढ़ें:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click

+4

यह एक अच्छा जवाब है लेकिन व्यक्तिगत रूप से मैं क्लिक() 'elm.dispatchEvent (नया ईवेंट ('चेंज') को कॉल करने के बजाय परिवर्तन ईवेंट को आग लगाना पसंद करते हैं; ' –

+0

@VictorSharovatov आप परिवर्तन ईवेंट को क्यों आग लगाना पसंद करेंगे? – PeterCo

+0

मैं केवल आंशिक रूप से सहमत हो सकता हूं - विज्ञापन – pkolawa

5

मैं नोट करने के लिए, कि एक गैर रिक्त स्ट्रिंग पर 'को चेक किया' विशेषता की स्थापना एक जाँच बॉक्स की ओर जाता है चाहते हैं।

आप के लिए "गलत", चेकबॉक्स जाँच की जाएगी 'को चेक किया' विशेषता सेट तो अगर। मैं, अशक्त रिक्त स्ट्रिंग पर मान सेट करने के लिए किया था या बुलियन मान झूठी आदेश सुनिश्चित करें चेकबॉक्स चेक नहीं किया गया था बनाने के लिए।

+2

विज्ञापनों से अवांछित कार्रवाइयों के कारण AdBlocks वर्चुअल क्लिक() से DOM का बचाव कर रहे हैं, ऐसा इसलिए है क्योंकि एक गैर-खाली स्ट्रिंग को सत्य के रूप में माना जाता है। –

2
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.selecctall').click(function (event) { 
      if (this.checked) { 
       $('.checkbox1').each(function() { 
        this.checked = true; 
       }); 
      } else { 
       $('.checkbox1').each(function() { 
        this.checked = false; 
       }); 
      } 
     }); 

    }); 

</script> 
2

इस प्रयास करें:

//Check 
document.getElementById('checkbox').setAttribute('checked', 'checked'); 

//UnCheck 
document.getElementById('chk').removeAttribute('checked'); 
0
function setCheckboxValue(checkbox,value) { 
    if (checkbox.checked!=value) 
     checkbox.click(); 
} 
संबंधित मुद्दे