I'gostaria de fazer algo assim para marcar um checkbox
utilizando **jQuery***:
$(".myCheckBox").checked(true);
ou
$(".myCheckBox").selected(true);
Existe tal coisa?
Utilize .prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
Se você estiver trabalhando com apenas um elemento, você pode sempre apenas acessar a propriedade HTMLInputElement
subjacente e modificar sua propriedade .check
:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
O benefício de utilizar os métodos .prop()
e .attr()
ao invés disso é que eles irão operar em todos os elementos combinados.
O método .prop()
não está disponível, então você precisa utilizar .attr()
.
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
Note que esta é a abordagem utilizada pelo jQuery's unit tests antes da versão 1.6 e é preferível a utilizar $('.myCheckbox').removeAttr('checked');
uma vez que esta última irá, se a caixa foi inicialmente marcada, alterar o comportamento de uma chamada para .reset()
em qualquer forma que a contenha - uma mudança de comportamento sutil mas provavelmente indesejável.
Para mais contexto, algumas discussões incompletas sobre as mudanças no manuseio do atributo/propriedade marcado' na transição de 1.5.x para 1.6 podem ser encontradas na seção [notas de lançamento da versão 1.6][7] e na seção **Attributes vs. Properties*** da [
.prop()` documentação]1.
Use:
$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);
E se você quiser verificar se uma caixa de seleção está marcada ou não:
$('.myCheckbox').is(':checked');
Você pode fazer
$('.myCheckbox').attr('checked',true) //Standards compliant
ou
$("form #mycheckbox").attr('checked', true)
Se você tiver um código personalizado no evento onclick para a caixa de seleção que você deseja atirar, use esta aqui:
$("#mycheckbox").click();
Você pode desmarcá-lo removendo o atributo por completo:
$('.myCheckbox').removeAttr('checked')
Você pode marcar todas as caixas de seleção como esta:
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});