проверить / снять флажок с помощью jquery?

У меня есть несколько текстовых полей ввода на странице, и я отображаю их значения с помощью JavaScript.

Я использую функцию .set("value","") для редактирования значения, добавления дополнительного поля чекбокса и передачи значения.

Здесь я хочу проверить, что если value == 1, то флажок должен быть установлен. В противном случае он должен оставаться не отмеченным.

Я сделал это с помощью двух div'ов, но мне это не очень удобно, есть ли другое решение?

if(value == 1) {
    $('#uncheck').hide();
    $('#check').show();
} else{
    $('#uncheck').show();
    $('#check').hide();
}
Решение

Для jQuery 1.6+ :.

Функция .attr() для свойств устарела; вместо нее используйте новую функцию .prop():

$('#myCheckbox').prop('checked', true); // Checks it
$('#myCheckbox').prop('checked', false); // Unchecks it

Для jQuery < 1.6:.

Чтобы установить/снять флажок, используйте атрибут checked и измените его. С помощью jQuery вы можете сделать следующее:

$('#myCheckbox').attr('checked', true); // Checks it
$('#myCheckbox').attr('checked', false); // Unchecks it

Потому что в HTML это будет выглядеть примерно так:

<input type="checkbox" id="myCheckbox" checked="checked" /> 
<input type="checkbox" id="myCheckbox" /> 

Однако вы не можете доверять методу .attr() для получения значения флажка (если вам это нужно). Вам придется полагаться на метод .prop().

Комментарии (16)

Для этого можно использовать prop(), так как до версии jQuery 1.6 метод .attr() иногда учитывал значения свойств при получении некоторых атрибутов, что могло привести к противоречивому поведению. Начиная с jQuery 1.6, метод .prop() предоставляет возможность явного получения значений свойств, в то время как .attr() извлекает атрибуты.

var prop=false;
if(value == 1) {
   prop=true; 
}
$('#checkbox').prop('checked',prop);

или просто,

$('#checkbox').prop('checked',(value == 1));

Отрывок

$(document).ready(function() {
  var chkbox = $('.customcheckbox');
  $(".customvalue").keyup(function() {
    chkbox.prop('checked', this.value==1);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<h4>This is a domo to show check box is checked
if you enter value 1 else check box will be unchecked </h4>
Enter a value:
<input type="text" value="" class="customvalue">
<br>checkbox output :
<input type="checkbox" class="customcheckbox">
Комментарии (0)

Вы можете установить состояние флажка в зависимости от его значения:

$('#your-checkbox').prop('checked', value == 1);
Комментарии (1)