
Alerda Em Javascript
#1
Posted 25/08/2008, 14:59
Em um formulário aqui de meu sistema, eu gostaria de saber como bloquear para que nenhum campo seje enviado em branco, até consigo fazer isto com o PHP, mas aí seria na página de "ação" do formulário, ou seja, complicação demais, se tem como fazer em Javascript, um alerta na hora que clica no enviar...
Como fazer?
Obrigado des de já.
#2
Posted 25/08/2008, 15:11
<input type="text" id="nome">
<input type="button" onsubmit="valida()">
function valida(){
texto = document.getElementById('nome');
if (texto.value == " ") { window.alert("O campo está vazio"); return false;}
}
#3
Posted 25/08/2008, 16:26
Isso no começo da página:
<script language="JavaScript"> function valida(){ texto = document.getElementById('vendedor'); if (texto.value == " ") { window.alert("O campo está vazio"); return false;} } </script>
e o input ficou assim:
<input type="textfield" name="vendedor" id="vendedor" OnSubmit="valida()">
Outra coisa, não teria de fazer um esquema assim, para na hora de "puchar" a função valida, colocar o ID do campo, ex: OnSubmit="valida('vendedor')", aí colocar isso lá na função para pegar este ID, porque tenho mais de um campo que tenho de verificar no formulário...
Entendeu?
Atenciosamente,
Lucas de Haro.
#4
Posted 26/08/2008, 10:23
<html><head><script>function valida(){testando = document.getElementById('texto');if (testando.value == ""){window.alert("DIGITE"); return false;}}</script></head><body><input type="text" id="texto" /><input type="button" id="botao" onClick="valida(texto)" /></body></html>
Só não estou conseguindo pegar os parametros, jaja vejo para vc
Alguém sabe pq nao funciona o parametro?
<html> <head> <script> function valida(x){ testando = document.getElementById('x'); if (testando.value == ""){window.alert("DIGITE"); return false;} } </script> </head> <body> <input type="text" id="texto" /> <input type="button" id="botao" onClick="valida(texto)" /> </body> </html>
#5
Posted 26/08/2008, 10:34
Agora avisa se o campo (Apenas o campo que eu coloquei com o ID texto!) está em branco, porém não "breca" a página, ele avisa e assim que aperta [ ok ] roda a página....
Abraços.
#6
Posted 26/08/2008, 10:41
<html> <head <script> function valida(x){ testando = document.getElementById('x'); if (testando.value == ""){ window.alert("DIGITE"); x.focus(); return false; } } </script> </head> <body> <input type="text" id="texto" /> <input type="button" id="botao" onClick="valida(texto)" /> </body> </html>
Tente assim, mas no lugar dos 'x' bote o ID por enquanto.
Edição feita por: fekz, 26/08/2008, 10:46.
#7
Posted 26/08/2008, 10:48

Se é apenas para verificar se é vazio, para que usar o Id ou Name do campo? Basta pegar todos os campos do form, independente de IDs, names, e verificar se todos estão com contéudo.
Com o length dá para pegar a quantidade de campos de um form. Sendo assim, basta dar um laço For em todos os campos do form, e usar uma condicional (If...) para checar se estão ou não preenchidos.
<html> <script> function checa() { var form = document.forms['nome_form']; for (var x = 0,y = form.length-1; x<y;x++) { if (form.elements[x].value == "") { alert("Você deve preencher todos os campos deste form."); return false; } } return true; } </script> <body> <form name="nome_form" onsubmit="return checa();"> Campo 1: <input type="text" name="campo1" size="20" /><br/> Campo 2: <input type="text" name="campo2" size="20" /><br/> Campo 3: <input type="text" name="campo3" size="20" /><br/> Campo 4: <input type="text" name="campo4" size="20" /><br/> <p><input type="submit" value="Enviar" name="envia" /></p> </form> </body> </html>
Edição feita por: Firehalk, 26/08/2008, 10:48.
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.
#8
Posted 26/08/2008, 10:48
Ali no testando = document.getElementById('x');
deixe:
testando = document.getElementById(x);
e na hora de chamar poe document.getElementById('NOMEDOIDENTREASPASSIMPLES');
#9
Posted 26/08/2008, 14:48

fekz, não cheguei a testar a última alteração, mas muuuuuuito obrigado pela ajuda!
Agora uma coisa, podem me explicar como funciona o código do Firehalk, porque gostaria de aprender...
O código do fekz eu até consegui entender vendo assim...
Porque eu nunca mechi com JavaScript...
Gostaria de entender o porque disso e daquilo, para aprender....
Obrigado.
#10
Posted 26/08/2008, 15:12
function checa() { var form = document.forms['nome_form']; for (var x = 0,y = form.length-1; x<y;x++) { if (form.elements[x].value == "") { alert("Você deve preencher todos os campos deste form."); return false; } } return true; }
O que o código acima faz é basicamente o seguinte:
Eu me utilizo de um loop (for) que vai pegar o total de campos do formulário. Além disso, defini x que é uma variável que vai servir como um contador dentro desse loop. Ela vai sendo incrementada (apartir de 0) na medida que o loop for sendo executado. Ou seja: primeiro vai ser 0, depois 1, depois 2... e assim por diante.
Cada item do formulário pode ser acessado ou pelo seu nome, ou pela sua posição na array dos elementos do form (seu índice).
Ex:
Nome
document.forms['nome_form'].elements['nome_campo'];
Índice
document.forms['nome_form'].elements[0];
Por posição eu quero dizer índices de uma array. Se você entende algo de arrays, sabe que elas começam em 0, e não em 1. Por isso do contador começar em 0 (var x = 0) e não em 1.
Ou seja, no caso de um formulário que tem 4 elementos, será 0,1,2,3 os índices usados. Por isso que no length eu subtraio 1:
y = form.length-1
Aí na condicional, eu pego o meu x que é incrementado a cada loop, e coloco ele no lugar do índice dos elementos:
if (form.elements[x].value == "") {
Sendo assim, ele vai percorrer todos os campos do form e checar em cada um deles se o value é vazio. Caso for, vai retornar um alerta e false (não envia o form), e caso for true irá submeter.
Edição feita por: Firehalk, 26/08/2008, 15:13.
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.
#11
Posted 26/08/2008, 15:19
Vejamos se entendi...
Primeiro você fez uma "varredura" e pegou o número de campos, e colocou na aray...
depois com a array feita, foi de campo em campo verificando, se o value é "nulo",
se for da o alerta e não executa, se todos tiverem valor envia o form? Correto?
Muuuito obrigado!
#12
Posted 26/08/2008, 16:31
Depois, nesse array, ele vai de campo em campo vendo se tem algum campo vazio.
Mas ainda acho a outra solução bem mais simples ;D
#13
Posted 26/08/2008, 16:38
Além do que, da maneira do fekz não pegaria todos os campos. Tem que colocar um por um.
É apenas uma validação do form todo, não tem porque colocar nome após nome...
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.
#14
Posted 26/08/2008, 17:38
Agora, quando você diz que isso pode gerar problemas futuros se refere a quê?
pegar um form pelo vetor também gera problemas, caso você ponha por exemplo:
document.forms[0].elements[4] ele irá pegar o quinto element, sendo que se voce inserir outro antes ele irá virar o sexto elemento, e aí sim também pode ocorrer um erro.
Mas nesse caso é valido porque ele só conta quantos tem, não interessando qual é.
#15
Posted 26/08/2008, 17:49
Beleza então

Vlw aos 2 aí!
Abraços.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)