marcar / desmarcar a caixa de seleção usando jquery?

Eu tenho alguns campos de texto de entrada na minha página e estou exibindo seus valores usando JavaScript.

Estou utilizando .set("value","") função para editar o valor, adicionar um campo de seleção extra e passar um valor.

Aqui eu quero verificar se value == 1, então esta caixa de seleção deve ser marcada. Caso contrário, deve permanecer desmarcada.

Eu fiz isso usando dois mergulhos, mas não me sinto confortável com isso, existe alguma outra solução?

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

Para jQuery 1.6+ :

.attr() é depreciado para propriedades; use a nova função .prop() em vez disso como:

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

Para jQuery < 1.6:

Para marcar/desmarcar uma caixa de seleção, utilize o atributo marcado e altere isso. Com jQuery você pode fazer:

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

Porque sabes, em HTML, pareceria algo parecido:

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

Entretanto, você não pode confiar no método .attr() para obter o valor da caixa de seleção (se você precisar). Você terá que confiar no método .prop().

Comentários (16)

Você pode usar prop() para isso, pois Antes de jQuery 1.6, o método .attr() algumas vezes levava em conta os valores das propriedades ao recuperar alguns atributos, o que poderia causar comportamento inconsistente. Como em jQuery 1.6, o método .prop() fornece uma forma de recuperar explicitamente os valores das propriedades, enquanto .attr() recupera atributos.

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

**ou*** simplesmente,

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

**Snippet***

$(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">
Comentários (0)

Você pode definir o estado da caixa de seleção com base no valor:

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