установите / снимите флажок с помощью jquery? [дубликат]

этот вопрос уже есть ответ здесь:

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

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

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

if(value == 1) {
    $('#uncheck').hide();
    $('#check').show();
} else{
    $('#uncheck').show();
    $('#check').hide();
}

3 ответов


для jQuery 1.6+ :

.attr () не рекомендуется для свойств; используйте новый .prop ()


можно использовать prop () для этого, как перед jQuery 1.6, the .attr () метод иногда учитывал значения свойств при извлечении некоторых атрибутов, что может привести к несогласованному поведению. по состоянию на jQuery 1.6, the .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">

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

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