Bob Lozano
Bob Lozano

Reputation: 592

.change not reacting as dynamic as expected

I'm new to javascript, I'm using jquery, this is my html with php code:

<form action="" method="POST" enctype="multipart/form-data">
    <h1>Quantity 1</h1>
    <input id="btn1" type="number" name="cantpag" value="<?php echo $cp; ?>">

    <h1>Quantity 2</h1>
    <input id="btn2" type="number" name="cantreinv" value="<?php echo $cr; ?>">

    <input type="submit">
</form>

Here is my JS:

<script>
$(document).ready(function(){
    $(document).on('change','#btn1',function(){
        alert('works');
    });
});</script>

When I change the value of "#btn1", nothing happens immediately, instead, I must press tab or somwhere else to have the alert show up. Is there any way for this to be instant, as in, just adding or removing a number from the input field triggers the alert?

Upvotes: 3

Views: 41

Answers (1)

PeterKA
PeterKA

Reputation: 24638

    $(document).ready(function(){
        $(document).on('input','#btn1',function(){
            alert('works');
        });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="" method="POST" enctype="multipart/form-data">
    <h1>Quantity 1</h1>
    <input id="btn1" type="number" name="cantpag" value="<?php echo $cp; ?>">

    <h1>Quantity 2</h1>
    <input id="btn2" type="number" name="cantreinv" value="<?php echo $cr; ?>">

    <input type="submit">
</form>

The input event should work better. The change event on certain elements require a blur to register.

Upvotes: 3

Related Questions