0

Como faço para validar campos na mesma página ao clicar no botao de envia sem dar refresh na página

criado por Bruno Santos em 14/05/2004 6:55pm
Nenhuma descrição foi enviada.

Lista de Respostas:

0
17/05/2004 11:19am
(~20 anos atrás)
usualmente javascript, mas existe a possibilidade de validar num frame oculto e devolver o processamento ao frame visivel!

0
17/05/2004 4:23pm
(~20 anos atrás)
Normalmente se faz assim. Antes de colocar aqui o código, é bom avisar que validações em jabascript ou vbscript são inseguras, uma vez que pode-se

desabilitar a interpretação destas linguagens no navegador e também se pode ver o código fonte delas. Portanto valide sempre em javascript para um

output melhor, mas valide também sempre em php por questões de seguransa.

<html>
<head>
<title> Teste de validação de formulário em javascript </title>
<script language="javascript">
//Aqui todo o código javascript
//Função que verificará se nossos campos com preenchimento obrigatório estão mesmo preenchidos
//Caso não estejam, um alert será exibido
function verifica(){
if(document.form1.nome.value==""){
alert("Erro! O Campo \"Nome\" está em branco!");
document.form1.nome.focus();
return false;
}
if(document.form1.sobrenome.value==""){
alert("Erro! O Campo \"Sobrenome\" está em branco!");
document.form1.sobrenome.focus();
return false;
}
//Verificando se a combo do estado tem valor selecionado
if(document.form1.estado.value==""){
alert("Erro! Você precisa selecionar um estado!");
document.form1.estado.focus();
return false;
}
return true;
}
//Função check analiza a função verifica e envia o formulário ou para o processo
function check(){
if(verifica())
document.form1.submit();
}
//função teclaPress valida os campos caso o usuário
//Precione enter em um dos dois edits em vez de clicar no botão
function teclaPress(){
var tecla=event.keyCode;
if(tecla==13){
if(verifica())
return true;
else
return false
}
else
return tecla;
}
</script>
</head>
<body>
<form name="form1" action="arquivo.php">
Nome: <input type="text" name="nome" value="" onKeyPress="return teclaPress()"><br>
Sobrenome: <input type="text" name="sobrenome" value="" onKeyPress="return teclaPress();">
Estado: <select name="estado">
<option value="" selected> Selecione
<option value="SP"> São Paulo
<option name="RJ"> Rio de Janeiro
</select>
<input type="button" value="Enviar" OnClick="check();">
</form>
</body>
</html>

0
17/05/2004 6:04pm
(~20 anos atrás)
Diogo Gomes respondeu:
usando o evento onSubmit() do form

0
20/05/2004 9:16pm
(~20 anos atrás)
Alessander Thomaz respondeu:
Existem várias formas.
O mais usado é colocar um evento onSubmit="return Valida(this)"
no form.

Onde Valida(this) é um javascript que recebe o nome do form e faz validações do tipo

<script language="javascript">
function Valida(form) {
if(form.nome.value = "") {
alert("O Campo nome não pode ser vazio");
form.nome.focus();
return false;
}

if(form.idade.value = "") {
alert("O Campo idade não pode ser vazio");
form.idade.focus();
return false;
}
}
</script>


algo mais ou menos assim, poderá também usar direto no click do botão ou da imagem uma chamada para uma função, a única mudança é que teria que colcoar no final da função, se não encontrar nenhum erro.

form.submit() (considerando que recebe form como parametro)

Claro, existem variações dessa técnica, mas acredito ser melhor que validar em um frame escondido na maioria dos casos.

Depende muito da aplicação, se conseguir validar tudo com JS melhor.
Tem coisas que não tem como validar com JS como campos repetidos na base, códigos que já foram digitados e cálculos malucos. Nesses casos pode usar frame escondido, mas já aviso que dá bastante trabalho.

Boa sorte.
Alessander

0
22/05/2004 3:38pm
(~20 anos atrás)
ae vai um codigozinho bem simples porém totalmente funcional para você:

//adicione isso dentro do <head> da sua página

<script>
function checar(form) {
if (nomedoform.nomedocampo.value=="") { alert(Aki vai o seu recado'); return false; }
if (nomedoform.nomedocampo2.value=="") { alert(Aki vai o seu recado'); return false; }
}
</script>

//adicione isso dentro da tag <submit> do seu form

onclick="return checar(this.form)"

Simples não?

Espero ter ajudado.

[]'z

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)