Ir para conteúdo

POWERED BY:

Arquivado

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

dimiguel

Script com erros...

Recommended Posts

Estou desenvolvendo um formulário com vários campos e quero validá-los com a função onBlur, porém quando ele faz a verificação do campo atual, o cursor vai para o próximo campo, o que faz com que o script entre em LOOP, dando alertas infinitos tendo que fechar a janela com CTRL+ALT+DEL.Veja abaixo o código:<script language="JavaScript"><!-- function checa_nome() { if(document.cadastro.nome.value.length==0) { alert("Você precisa informar seu NOME"); document.cadastro.nome.focus(); return false; } else return true; } function checa_sobrenome() { if(document.cadastro.sobrenome.value.length==0) { alert("Por favor, informe seu SOBRENOME"); document.cadastro.sobrenome.focus(); return false; } else return true; } function verifica() { var erro = true; erro = checa_nome(); erro = checa_sobrenome(); return erro; }--></script>QUAL É O ERRO????

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara o erro no teu script é que quando você tira o foco do campo nome, joga o foco no campo sobrenome e chama a função certo... aí a tua função vai acusar o erro e joga o foco de volta para o campo nome certo... ao jogar o foco para o campo nome ela tira do sobrenome e chama a função novamente e por isso fica repetido....eu tô meio sem tempo agora... mais tenta usar essa função aqui ela é bem simples e chama ela só na hora de enviar os dados...function check_values() { frm=document.cadastro; erro="0"; if (frm.nome.value=="") { erro="1"; alert("Você precisa informar seu NOME."); frm.nome.focus(); } if (erro=="0" && frm.sobrenome.value=="") { erro="1"; alert("Por favor, informe seu SOBRENOME."); frm.sobrenome.focus(); } if(erro=="0"){ document.cadastro.submit(); }}espero que ajude...flw! ]--n4ndo--[

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara o erro no teu script é que quando você tira o foco do campo nome, joga o foco no campo sobrenome e chama a função certo... aí a tua função vai acusar o erro e joga o foco de volta para o campo nome certo... ao jogar o foco para o campo nome ela tira do sobrenome e chama a função novamente e por isso fica repetido....eu tô meio sem tempo agora... mais tenta usar essa função aqui ela é bem simples e chama ela só na hora de enviar os dados...function check_values() { frm=document.cadastro; erro="0"; if (frm.nome.value=="") { erro="1"; alert("Você precisa informar seu NOME."); frm.nome.focus(); } if (erro=="0" && frm.sobrenome.value=="") { erro="1"; alert("Por favor, informe seu SOBRENOME."); frm.sobrenome.focus(); } if(erro=="0"){ document.cadastro.submit(); }}espero que ajude...flw! ]--n4ndo--[

E no caso de vários outros campos, é só ir adicionando verificações???

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra adicionar novos campos é bem simples...basta ir adicionando...if (erro=="0" && frm.nome_campo.value=="") {erro="1";alert("Por favor, informe seu nome_campo.");frm._nomecampo.focus();} c pode adicionar qnts quiser... e no primeiro erro que der (campo em branco) a excução da função para...flw--]n4ndo

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.