thelolcat
thelolcat

Reputation: 11545

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?

Upvotes: 10

Views: 3987

Answers (3)

Yakuza
Yakuza

Reputation: 23

    <!--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();">

Upvotes: 2

Jay Blanchard
Jay Blanchard

Reputation: 34406

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');
});

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

Upvotes: 6

Sebastien B.
Sebastien B.

Reputation: 476

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

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

Upvotes: -1

Related Questions