जावास्क्रिप्ट कोड के माध्यम से चेक करने पर भी चेकबॉक्स क्लिक इवेंट को कैसे ट्रिगर किया जाए?


80

मेरे पेज में कई चेकबॉक्स हैं और सभी चुनिंदा चेकबॉक्स हैं जो सभी चेकबॉक्स की जांच करते हैं। किसी तरह मैं उस चेकबॉक्स के ईवेंट पर क्लिक करना चाहता हूँ, भले ही वह चेक / अनचेक किया गया हो सभी चुनिंदा बटन के माध्यम से। मैं यह कैसे कर सकता हूं?

जवाबों:


117

आप jQuery .trigger()पद्धति का उपयोग कर सकते हैं । Http://api.jquery.com/trigger/ देखें

जैसे:

$('#foo').trigger('click');

13
आप बस कॉल कर सकते हैं $('#foo').click(), जो प्रभावी रूप से एक ही काम करता है।
केविन बेबॉक

2
शुद्ध जावास्क्रिप्ट के साथ यह कैसे करें?
पॉल

6
प्रतीत होता है trigger('click')टॉगल वर्तमान मूल्य। तुम सिर्फ स्थापित करने के लिए यह तो सेट चाहते हैं checkedसच करने के लिए तो triggerHandler फोन (...) stackoverflow.com/questions/10268222/...
rogerdpack

1
जब वे किसी तृतीय पक्ष का उपयोग करने की आवश्यकता होती है, तो इस तरह के पोस्ट कैसे सही रूप में चिह्नित होते हैं? उन्होंने jQuery समाधान के लिए नहीं पूछा।
वैंकेहो

@Wancieho प्रश्न को 'jquery' का टैग दिया गया है।
मार्क रॉबिन्सन

15

चेक की स्थिति प्राप्त करना

var checked = $("#selectall").is(":checked");

फिर सेटिंग के लिए

$("input:checkbox").attr("checked",checked);

9
attrजैसा कि मैंने propआजकल उपयोग किया है, यह कोशिश नहीं की है, लेकिन यह विधि केवल बक्से की जांच करती है, यह प्रत्येक बाद के लिए क्लिक ईवेंट को फायर नहीं करती है
EvilDr

9

आप .change()फ़ंक्शन का भी उपयोग कर सकते हैं

जैसे:

$('form input[type=checkbox]').change(function() { console.log('hello') });

जब जावास्क्रिप्ट के माध्यम से चेकबॉक्स परिवर्तन किया जाता है तो यह मेरे लिए काम नहीं करता है।
फ्लिम

6

कोई gQuery नहीं

document.getElementById ('your_box')। onclick ();

मैंने अपने चेकबॉक्स पर कुछ कक्षा का उपयोग किया।

var x = document.getElementsByClassName("box_class");
var i;
for (i = 0; i < x.length; i++) {
    if(x[i].checked) x[i].checked = false;
    else x[i].checked = true;
    x[i].onclick();
   }

6

आप इसका उपयोग भी कर सकते हैं, मुझे आशा है कि आप उनकी सेवा कर सकते हैं।

$(function(){
  $('#elements input[type="checkbox"]').prop("checked", true).trigger("change");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<div id="elements">
  <input type="checkbox" id="item-1" value="1"> Item 1 <br />
  <input type="checkbox" id="item-2" value="2" disabled> Item 2 <br /> 
  <input type="checkbox" id="item-3" value="3" disabled> Item 3 <br />
  <input type="checkbox" id="item-4" value="4" disabled> Item 4 <br />
  <input type="checkbox" id="item-5" value="5"> Item 5
</div>


4

JQuery से ट्रिगर फ़ंक्शन आपका उत्तर हो सकता है।

jQuery के डॉक्स कहते हैं: संबंधित घटना होने पर .on () या उसके शॉर्टकट तरीकों में से कोई भी घटना संचालकों को ट्रिगर किया जाता है। हालाँकि, उन्हें .trigger () विधि से मैन्युअल रूप से निकाल दिया जा सकता है। .Trigger () को कॉल उसी क्रम में संचालकों को निष्पादित करता है जैसे कि यदि उपयोगकर्ता द्वारा स्वाभाविक रूप से घटना को ट्रिगर किया गया था

इस प्रकार सबसे अच्छा एक लाइन समाधान होना चाहिए:

$('.selector_class').trigger('click');

//or

$('#foo').click();

1
  $("#gst_show>input").change(function(){

    var checked = $(this).is(":checked");
    if($("#gst_show>input:checkbox").attr("checked",checked)){
      alert('Checked Successfully');
    }

  });

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