My jquery is not alerting anything when I click the button with the id decrease. This is my code. I am using external js file.
$(document).ready(
    $('#decrease').click(function() {
        var beforeIncrement = $('#amt').val();
        alert(beforeIncrement);
    }))
I tried doing this and it is working fine.
$(document).ready(function(){
    alert("Ready");
})
This is the html code:
<div class="row justify-content-center d-flex">
     <button id="decrease" class="btn btn-warning">-</button>
         <input type="number" id="amt" value="1"/>
     <button id="increase" class="btn btn-warning">+</button>
</div>
what’s wrong with my first code snippet?
Advertisement
Answer
The value you pass to ready() needs to be a function.
In your first example, you are passing the return value of $('#decrease').click(...).
This means that $('#decrease').click(...) has to be evaluated immediately, so it is looking for #decrease before the DOM is ready and the element doesn’t exist yet.
ready() then ignores the value you pass to it because it isn’t a function.
Wrap the call to $('#decrease').click(...) in a function, just as you did for alert(...) in the second example.
You also have a missing ); at the end but I’m guessing that just got cut off when you transcribed your code to the question.