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

359

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

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

Я сделал это, используя два div, но мне это не нравится, есть ли другое решение?

if(value == 1) {
    $('#uncheck').hide();
    $('#check').show();
} else{
    $('#uncheck').show();
    $('#check').hide();
}
Теги:

3 ответа

879
Лучший ответ

Для 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" /> <!-- Checked -->
<input type="checkbox" id="myCheckbox" /> <!-- Unchecked -->

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

Итак, для jQuery 1.6+:

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

$('#myCheckbox').prop('checked', true); // Checks it
$('#myCheckbox').prop('checked', false); // Unchecks it
  • 59
    Элемент считается checked если у него есть атрибут checked даже если он не имеет значения или значение похоже на «ложь» или что-то еще. Так что $('#myCheckbox').attr('checked', false); не снимите галочку, вам нужно $('#myCheckbox').removeAttr('checked'); ,
  • 4
    @xpy .attr("checked",false); работает в моем браузере.
Показать ещё 14 комментариев
45

Вы можете использовать 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">
19

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

$('#your-checkbox').prop('checked', value == 1);
  • 3
    Это не работает для меня, значение не определено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню