jQuery change event is not working with checkbox

Viewed 1128
<tr>
  <td class="large-width">
    <p>
      <label>
        <input type="checkbox" id="checkbox" ${todo.isCompleted ? 'checked="checked"' : ''} />
        <span class="text">${todo.item}</span>
      </label>
    </p>
  </td>
</tr>

<script>
   $('#checkbox').change(function(){
     console.log('something');
   });
</script>

I can see that checkbox is changing it's state, but Change event is not working. I also tried on('change') and click events - they're not working either. By the way, I'm using materializecss.

2 Answers

Keep it inside document ready

<script>
$(function(ready){
   $('#checkbox').change(function(){
     console.log('something');
   });
});
</script>

Need to call below jQuery methods to working code

$(document).ready(function(){ // jQuery methods go here... });

OR

$(function(){ // jQuery methods go here... });

<tr>
  <td class="large-width">
    <p>
      <label>
        <input type="checkbox" id="checkbox" ${todo.isCompleted ? 'checked="checked"' : ''} />
        <span class="text">${todo.item}</span>
      </label>
    </p>
  </td>
</tr>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>$(document).ready(function(){
   $('#checkbox').change(function(){
     console.log('something');
   }); });
</script>

Related