简体   繁体   中英

oninput does not fire on checkboxes?

The following code does not work on all input elements:

$(':input').on('input', function(){
  alert('boom shakalaka');
});

It has no effect on check-boxes even though they are input elements, and checking or unchecking changes its state.

I can add the change event too inside on() but then the same event will be fired twice on other input fields.

Is there any reliable input state-change event that is consistent for all form elements?

There is no single event that would be authoritative, but you can bind to multiple events -

$(':input').on('change keyup input', function() {
    console.log('changed');
});

PS I wanted to give you a +1 for using 'boom shakalaka' in an example, but I digress.

    <!--Why not just use onclick ?-->
    <!--Ur-->
    <script>
    $('input#checkbox').on('click', function(){
      alert('boom shakalaka');
    });
    </script>
    <input type="checkbox" id="checkbox">
    <!--Or-->
    <input type="checkbox" onclick="anyfunction();">

I'm not sure if what you want but maybe a simple blur event?

$('input').on('blur',function(e){
      alert('event');
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM