проверка / премахване на чекбокс с помощта на jquery?

Имам няколко входни текстови полета в страницата си и показвам стойностите им с помощта на JavaScript.

Използвам функцията .set("value",""), за да редактирам стойността, да добавя допълнително поле за отметка и да подам стойност.

Тук искам да проверя дали ако value == 1, това поле за отметка трябва да бъде маркирано. В противен случай то трябва да остане отметнато.

Направих това, като използвах два divs, но не се чувствам комфортно с това, има ли някакво друго решение?

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(), тъй като преди версия 1.6 методът .attr() понякога вземаше предвид стойностите на свойствата при извличането на някои атрибути, което можеше да доведе до непоследователно поведение. От версия 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)