Estou tentando marcar / desmarcar todas as caixas de seleção usando jQuery. Agora, marcando / desmarcando a caixa de seleção pai, todas as caixas de seleção filho estão sendo marcadas / desmarcadas também com o texto da caixa de seleção pai sendo alterado para marcar / desmarcar.
Agora, quero substituir a caixa de seleção pai por um botão de entrada e alterar o texto também no botão para marcar / desmarcar. Aqui está o código, alguém pode por favor ajustá-lo?
$( function() {
$( '.checkAll' ).live( 'change', function() {
$( '.cb-element' ).attr( 'checked', $( this ).is( ':checked' ) ? 'checked' : '' );
$( this ).next().text( $( this ).is( ':checked' ) ? 'Uncheck All' : 'Check All' );
});
$( '.cb-element' ).live( 'change', function() {
$( '.cb-element' ).length == $( '.cb-element:checked' ).length ? $( '.checkAll' ).attr( 'checked', 'checked' ).next().text( 'Uncheck All' ) : $( '.checkAll' ).attr( 'checked', '' ).next().text( 'Check All' );
});
});
<input type="checkbox" class="checkAll" /> <b>Check All</b>
<input type="checkbox" class="cb-element" /> Checkbox 1
<input type="checkbox" class="cb-element" /> Checkbox 2
<input type="checkbox" class="cb-element" /> Checkbox 3
Respostas:
Tente este :
DEMO
fonte
.click()
.attr()
eremoveAttr()
não deve ser utilizado com o "marcada" atributo. ComoremoveAttr()
irá remover o atributo em vez de configurá-lo parafalse
..prop('checked', true)
ou.prop('checked', false)
deve ser usado, como explicado na resposta do @ richard-garside.Esta é a maneira mais curta que eu encontrei (precisa do jQuery1.6 +)
HTML:
JS:
Estou usando .prop como .attr não funciona para caixas de seleção no jQuery 1.6+, a menos que você tenha adicionado explicitamente um atributo marcado à sua tag de entrada.
Exemplo-
fonte
Tente este:
HTML
Javascript
DEMO
fonte
Html
Javascript
fonte
Solução para alternar caixas de seleção usando um botão, compatível com jQuery 1.9+, em que o toogle-event não está mais disponível :
DEMO
fonte
Tente o seguinte:
e
é o evento gerado quando você o fazclick
ee.target
é o elemento clicado (.checkAll
); portanto, você só precisa colocar a propriedadechecked
dos elementos com classe.cb-element
como a do elemento com classe .checkAll`.PS: Desculpe meu inglês ruim!
fonte
$('#all_news_items').on('click', function(e) { $('.news-item-option').prop('checked', $(e.target).prop('checked')); });
sem o checkall funções Interferring com outros elementos do formulário, para que você possa adicionar uma nova checkall facilmente:$('#all_specializations').on('click', function(e) { $('.specialization-option').prop('checked', $(e.target).prop('checked')); });
Você pode tentar isso
Classe
.checkAll
é uma caixa de seleção que controla a ação em massafonte
Concordo com a resposta curta de Richard Garside, mas, em vez de usar
prop()
,$(this).prop("checked")
você pode usar achecked
propriedade JS nativa da caixa de seleção como,fonte
Marque / desmarque Todos com propriedade intermediária usando jQuery
Obter itens marcados na matriz usando o método getSelectedItems ()
Lista de opções de origem Selecionar / desmarcar tudo com verificação mestre indeterminada
HTML
jQuery
fonte
Melhor solução aqui Verifique Fiddle
fonte
O código abaixo funcionará se o usuário marcar todas as caixas de seleção e, em seguida, marcar todas as caixas de seleção.
fonte
tente isso
fonte
Autopromoção desavergonhada: existe um plugin jQuery para isso .
HTML:
JS:
... e pronto.
http://jsfiddle.net/mattball/NrM2P
fonte
tente isso,
fonte
Você pode usar
this.checked
para verificar o estado atual da caixa de seleção,Mostrar snippet de código
fonte
Experimente o código abaixo para marcar / desmarcar todas as caixas de seleção
Experimente este link de demonstração
Há também outra maneira curta de fazer isso, veja o exemplo abaixo. Neste exemplo, marque / desmarque todas as caixas de seleção estão marcadas ou não, se marcadas, todas serão marcadas e se nem todas serão desmarcadas
fonte
Sei que essa pergunta é antiga, mas notei que a maioria das pessoas está usando uma caixa de seleção. A resposta aceita usa um botão, mas não pode funcionar com vários botões (por exemplo, um na parte superior da página e outro na parte inferior). Então, aqui está uma modificação que faz as duas coisas.
HTML
jQuery
Isso permitirá que você tenha quantos botões desejar com a alteração dos valores do texto e da caixa de seleção. Incluí uma
e.preventDefault()
ligação porque isso impedirá que a página salte para o topo devido àhref="#"
parte.fonte
fonte
Aqui está um link, usado para marcar e desmarcar a caixa de seleção pai e todas as caixas de seleção filho estão sendo marcadas e desmarcadas.
jquery marcar desmarque todas as caixas de seleção Usando o Jquery com demonstração
fonte
fonte
adicione isso no seu bloco de código ou clique no seu botão
fonte
fonte
Marque Todos com desmarcar / verificar o controlador se todos os itens estiverem marcados / não
JS:
HTML:
fonte