Установка значения флажка в true или false с помощью jQuery

У меня есть форма с флажком. С jQuery я хотел бы установить значение флажка TRUE, если отмечено, и если оно не отмечено, значение будет установлено на FALSE. Как я могу это сделать?

Ответ 1

ОБНОВЛЕНО: использование prop вместо attr

 <input type="checkbox" name="vehicle" id="vehicleChkBox" value="FALSE"/>

 $('#vehicleChkBox').change(function(){
     cb = $(this);
     cb.val(cb.prop('checked'));
 });

ВНЕ ДАТЫ:

Вот jsfiddle

<input type="checkbox" name="vehicle" id="vehicleChkBox" value="FALSE" />

$('#vehicleChkBox').change(function(){
     if($(this).attr('checked')){
          $(this).val('TRUE');
     }else{
          $(this).val('FALSE');
     }
});

Ответ 2

Вы можете выполнить (jQuery 1.6 и далее):

$('#idCheckbox').prop('checked', true);
$('#idCheckbox').prop('checked', false);

для удаления вы также можете использовать:

$('#idCheckbox').removeProp('checked');

с jQuery < 1.6 вы должны сделать

$('#idCheckbox').attr('checked', true);
$('#idCheckbox').removeAttr('checked');

Ответ 3

Используйте $('#id-of-the-checkbox').prop('checked', true_or_false);

Если вы используете старую версию jQuery, вам нужно использовать .attr('checked', 'checked') для проверки и .removeAttr('checked'), чтобы снять флажок.

Ответ 4

Попробуйте следующее:

HTML:

<input type="checkbox" value="FALSE" />

JQ:

$("input[type='checkbox']").on('change', function(){
  $(this).val(this.checked ? "TRUE" : "FALSE");
})

jsfiddle

Пожалуйста, имейте в виду, что флажок без отметки не будет отправлен в обычной форме, и вы должны использовать скрытую заявку, чтобы сделать это.

Ответ 5

var checkbox = $( "#checkbox" );
checkbox.val( checkbox[0].checked ? "true" : "false" );

Это установит флажок value в поле "true" или "false" (value property является string), в зависимости от того, является ли он unchecked или checked.

Работает в jQuery >= 1.0