Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

weslleysolo

[Resolvido] Desmarcar checkbox quando outros estiverem desmarcado

Recommended Posts

Olá rapaziada....

 

Tenho o seguinte script:

<script>
$(function () {
$("#marcaTodos").change(function(){
if (this.checked) {
$(".ch").attr({ checked: true });
} else {
$(".ch").attr({ checked: false });
}
});
	$(".ch").change(function(){
	
		$("#marcaTodos").attr({ checked: true });

	});
});
</script>
<form action="" method="post">

	<input type="checkbox" value="0" id="marcaTodos" name="opcao[]" style="margin-left: 30px;"/> <b>Grupo 1</b>
    <input type="checkbox" class="ch" value="1" name="opcao[]" style="margin-left: 30px;"/> Opção 1
	<input type="checkbox" class="ch" value="2" name="opcao[]" style="margin-left: 30px;"/> Opção 2
	<input type="checkbox" class="ch" value="3" name="opcao[]" style="margin-left: 30px;"/> Opção 3
	<input type="checkbox" class="ch" value="4" name="opcao[]" style="margin-left: 30px;"/> Opção 4

</form>

Funciona quase que beleza...a única coisa que não consegui fazer é , quando as opções 1,2,3 e 4 estiverem TODAS desmarcadas, desmarcar tbm o input do Grupo 1...entenderam?

 

Pq se eu seleciono o input Grupo 1 , vai marca todas as opções, que é o que quero, mas se eu for desmarcando as opções o input Grupo continua marcado...

 

Agradeço quem dar um help...

Compartilhar este post


Link para o post
Compartilhar em outros sites
não mano, o meu faz o mesmo...o que quero é, quando todas as opções estiverem desmarcadas, que o checkbox, o que marca todos, tambem seja desmarcado...

Compartilhar este post


Link para o post
Compartilhar em outros sites
não mano, o meu faz o mesmo...o que quero é, quando todas as opções estiverem desmarcadas, que o checkbox, o que marca todos, tambem seja desmarcado...

 

Não seria mais correto quando desmarcar ao menos 1 o "Desmarcar Todos" ficasse sem também? Porque como você propõe eu poderia marcar todos, depois desmarcar alguns e deixar só um marcado, e ainda ter o marcar todos selecionado, sendo que eu não tenho todos selecionados.

 

O Desmarcar todos iria se comportar da seguinte forma: Todos marcados -> também marcado, algum não marcado -> não marcado.

 

 

$(function(){
    
	/*
	 * Quando alterar o "Marca Todos", marcar ou desmarcar os checkbox
	 */
	$("#marcaTodos").change(function(){
        if (this.checked) {
            $(".ch").attr({
                checked: true
            });
        }
        else {
            $(".ch").attr({
                checked: false
            });
        }
    });
	
	/*
	 * Se todos estiverem marcados, marca o "Marca Todos",
	 * caso contrário desmarca 
	 */
	var listaCheckbox = $(".ch"); 
    var checkboxCount = listaCheckbox.length;
	 
	listaCheckbox.change(function()
	{
		var todosMarcados =  $(".ch:checked").length === checkboxCount;

		$("#marcaTodos").attr({
            checked: todosMarcados
        });
		
        
    });
});

Dá uma olhada nesse código, eu já testei e parece funcionar legal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi mano....obrigado pela ajuda, mas ainda não é isso....vou explicar melhor, erro meu nao ser claro suficiente.

 

Vamos, lá...que raios é esse sistema <_< , vcs devem esta se perguntando...

 

Estou desenvolvendo uma administração onde o admin tenha a opção de cadastrar outros usuários e dá permissões a este usuário de navegar SOMENTE nas páginas que o admin lhe permitir, entao nessa parte eu listo todas as opções das páginas, exemplo:

 

[]Configurações

[]Cadastrar usuários

[]Personalizer site

[]Alterar email padrão

 

[] Mídias

[]Video

[]Áudio

 

etc....

 

entao é o seguinte...se o admin for cadastrar o fulano, ele vai da permisão pra ele mexer só em 'Midias', entao ele deve marar 'Mídias' mais as opções: 'Audio e 'Video' ou, 'Audio' ou 'Video'...CASO ele desista, ele vai desmarcar as opções, MAS 'Midias' vai continuar marcado, sacaram :P ...e é isso que NAO quero...quero que se as opções estiverem desmarcadas, que 'Midias' seja desmarcada tbm...

 

Uffa...acho que fui mais claro...desculpem e obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bruno

 

consegui mano...value, você me deu uma força

 

	
var listaCheckbox = $(".ch"); 
    var checkboxCount = $("input:checked").length;
         
        listaCheckbox.change(function()
        {
		var todosMarcados =  $(".ch:checked").length;
			if(todosMarcados <= 0){
			$("#marcaTodos").attr({ checked: false });
		}
           
    });	

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.