BRG BRG - 5 months ago 23
jQuery Question

Checkbox is always checked whatever I choose

Hello I am building a form with 1 checkbox. The rest of the form fields work fine but whether the checkbox is checked or not the value is always 'on'.

My code:

<input id="checkbox_<?=$row['csid'];?>" type="checkbox" <?php if($row['feedbackVisible'] == 'yes') { echo "checked='true'";}?> >


and how i get value with jQuery:

var review_visible_website = $('#checkbox_'+ modalId).val();


The checkbox starts checked but if i uncheck it, it still gives me value 'on'. What am I doing wrong?

Answer

Here are few ways you can test a check box with JQuery

// First method - Recommended
$('#checkbox').prop('checked')  // Boolean true

// Second method - Makes code more readable (e.g. in if statements)
$('#checkbox').is(':checked')  // Boolean true

// Third method - Selecting the checkbox & filtering by :checked selector
$('#checkbox:checked').length  // Integer >0
$('#checkbox:checked').size()  // .size() can be used instead of .length

// Fourth method - Getting DOM object reference
$('#checkbox').get(0).checked  // Boolean true
$('#checkbox')[0].checked      // Boolean true (same as above)