Logo Hardware.com.br
Flavio Tinte
Flavio Tinte Novo Membro Registrado
9 Mensagens 0 Curtidas

Habilitar/Desabilitar Checkbox

#1 Por Flavio Tinte 01/09/2008 - 17:43
Boa tarde galera,

minha dúvida é:

tenho 5 chkbox, qndo o 1º estiver selecionado, os outros 4 devem ser desabilitados, mas ao clicar removendo a seleçao do 1º, os outros serao habilitados para poderem ser selecionados. Já consegui desabilitá-los qndo clico no 1º chkbox, mas qndo removo sua seleçao, os outros continuam desabilitados.


fiz essa função...:


function confere()
{
if (document.getElementById('ck_permissao').disabled = true)
{
document.getElementById('ck_incluir').disabled = true;
document.getElementById('ck_excluir').disabled = true;
document.getElementById('ck_alterar').disabled = true;
document.getElementById('ck_verificar').disabled = true;
document.getElementById('ck_permissao').disabled = false;
}

if (document.getElementById('ck_permissao').disabled = false)
{
document.getElementById('ck_incluir').enabled = true;
document.getElementById('ck_excluir').enabled = true;
document.getElementById('ck_alterar').enabled = true;
document.getElementById('ck_verificar').enabled = true;
document.getElementById('ck_permissao').enabled = true;
}

}


se puderem me ajudar...
Responder
mcv
mcv Veterano Registrado
1.2K Mensagens 40 Curtidas
#4 Por mcv
01/09/2008 - 17:58
Não entendi se o problema foi resolvido, mas se não funciona mesmo corrigindo para == é porque alguma parte do código está com a lógica incorreta.

Veja que da forma como você tinha feito a condição será sempre falsa:
if (document.getElementById('ck_permissao').disabled = false)
E essa
(document.getElementById('ck_permissao').disabled = true)
Será sempre verdadeira.
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#6 Por Fergo
01/09/2008 - 18:13
Não existe a propriedade "enabled", por isso o segundo trecho do seu código não funciona. Esse código deve funcionar:


function confere()
{
if (document.getElementById('ck_permissao').disabled == true)
{
document.getElementById('ck_incluir').disabled = true;
document.getElementById('ck_excluir').disabled = true;
document.getElementById('ck_alterar').disabled = true;
document.getElementById('ck_verificar').disabled = true;
document.getElementById('ck_permissao').disabled = false;
}

if (document.getElementById('ck_permissao').disabled == false)
{
document.getElementById('ck_incluir').disabled = false;
document.getElementById('ck_excluir').disabled = false;
document.getElementById('ck_alterar').disabled = false;
document.getElementById('ck_verificar').disabled = false;
document.getElementById('ck_permissao').disabled = false;
}

}
Apenas como complemento: quando se utiliza texto na forma de strings com uma sequência de caracteres (palavra), costuma-se usar áspas ao invés de apóstrofos. Normalmente se utiliza o apóstrofo quando sfaz referência à um único caractere ("meutexto" e 'A' por exemplo).

Fergo
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#8 Por Fergo
01/09/2008 - 18:23
Eu não sei como está o resto do seu código, mas analisando apenas essa função nota-se que o "ck_permissão" nunca vai estar desativado (considerando que seu estado padrão é ativo), ou seja, ele nunca vai entrar no primeiro IF. Talvez isso esteja causando algum problema na lógica do seu código.

Fergo
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
Flavio Tinte
Flavio Tinte Novo Membro Registrado
9 Mensagens 0 Curtidas
#9 Por Flavio Tinte
01/09/2008 - 18:32
desculpem-me, estava fazendo uns testes e copiei o codigo sem corrigir, na verdade eu nao quero que o "ck_permissao" seja desabilitado, ele é qm vai dizer se os outros checkbox estarao ou nao desabilitados/habilitados, caso ele esteja selecionado ou não.. =)
[html]
function confere()
{
if (document.getElementById('ck_permissao').disabled = true)
{
document.getElementById('ck_incluir').disabled = true;
document.getElementById('ck_excluir').disabled = true;
document.getElementById('ck_alterar').disabled = true;
document.getElementById('ck_verificar').disabled = true;
}

if (document.getElementById('ck_permissao').disabled = false)
{
document.getElementById('ck_incluir').disabled = false;
document.getElementById('ck_excluir').disabled = false;
document.getElementById('ck_alterar').disabled = false;
document.getElementById('ck_verificar').disabled = false;
}

}
[html]
desse jeito, qndo seleciono o "ck_permissão", os outros chkbox sao desabilitados, mas qndo clico removendo a seleçao, os outros continuam desabilitados....
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#11 Por Fergo
01/09/2008 - 18:35
Você não está confundindo a propriedade "disabled" com "checked"? Pois depois que você desabilita um checkbox, você não consegue mais marcá-lo ou desmarcá-lo clicando nele, já que ele estaria desativado.
Mas se possível, aceite a sugestão do mcv e poste um trecho mais amplo do código, que envolvam as rotinas que se relacionam com esses checkboxes.

Fergo
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
Flavio Tinte
Flavio Tinte Novo Membro Registrado
9 Mensagens 0 Curtidas
#12 Por Flavio Tinte
01/09/2008 - 18:39
nessa linha, chamo a function confere() no clique do chkbox:


<input name="ck_permissao" type="checkbox" id="ck_permissao" value="checkbox" onclick="return confere()" />

código da funcao:

function confere()
{
if (document.getElementById('ck_permissao').disabled = true)
{
document.getElementById('ck_incluir').disabled = true;
document.getElementById('ck_excluir').disabled = true;
document.getElementById('ck_alterar').disabled = true;
document.getElementById('ck_verificar').disabled = true;
}

if (document.getElementById('ck_permissao').disabled = false)
{
document.getElementById('ck_incluir').disabled = false;
document.getElementById('ck_excluir').disabled = false;
document.getElementById('ck_alterar').disabled = false;
document.getElementById('ck_verificar').disabled = false;
}

}

imagem gerada:
Lista de Menus
Permissão
Incluir
Excluir
Alterar
Verificar
Opção








Imagem


qndo selecionei 'ck_permissao', os outros foram desabilitados, mas qndo clico novamente retirando a seleçao, eles continuam desabilitados...:

Lista de Menus
Permissão
Incluir
Excluir
Alterar
Verificar
Opção








Imagem
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#14 Por Fergo
01/09/2008 - 18:43
Nesse caso você está comparando a propriedade errada smile.png
Você está analisando se o ck_permissao está ativado/desativado, que é diferente de estar marcado/desmarcado.

Altere a condição dos IFs de "disabled" para "checked".

if (document.getElementById("ck_permissao&quot.checked = ...)
Fergo
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal