Ir para conteúdo
Fórum Script Brasil
  • 0

Validar Campos


siabreu

Pergunta

Olá a todos,

Fiz a validação de campos em um formulário e se algum campo estiver vazio uma caixa de alerta aparece informando o erro. O problema é: gostaria que as mensagens aparecessem em uma janela popup, ao invés de uma caixa alert.

é possível fazer isso?

Abaixo segue o código com o alert. Já tentei utilizar document.open, mas não consegui?

valida.php (formulário)

<html>
<head><title></title>
</head>
<script Language="JavaScript">
function valida(){
  var mensagem='Não é possível continuar, pois: ';
  var erro=false;
  if (document.login.email.value.length==0){
      erro=true;
      mensagem+='\n E-mail deve ser informado';
      document.login.email.focus();
  }
  if(document.login.senha.value.length < 5){
      erro=true;
      mensagem+='\n Senha inválida';
      document.login.senha.focus();
  }
  if (erro){
       alert(mensagem);
  }
  return !(erro);
}
</script>

<body>
<div align="center"></center>
<form name="login" method="POST" action="val.php" onSubmit="return valida();">
  <table border="0" width="50%">
    <tr>
      <td>Favor informar seu e-mail e senha</td>
    </tr>
    <tr>
      <td>e-mail</td>
      <td><input type="text" name="email" size="20"> </td>
    </tr>
    <tr>
      <td>Senha</td>
      <td><input type="password" name="senha" size="20"></td>
    </tr>
    <tr>
      <td><input type="submit" value="Enviar" name="enviar"></td>
    </tr>
  </table>
</form>
</body>
</html>
val.php (após dados corretos)
<?
$senha = $_POST["senha"];
$email = $_POST["email"];

     if ($senha != 'teste1'){
       echo "<script language=javascript>";
       echo "alert(\"E-mail/Senha Inválidos\");";
       echo "history.go(-1);";
       echo "</script>";
     }
     else
     {
       echo "<BR>Informações do formulário:";
       echo "<BR>E-mail: ".$email;
       echo "<BR>Senha: ".$senha;
       echo "<BR><a href='javascript:history.go(-1)'>voltar</a>";
     }
?>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

eu fiz +- o que você pediu só não sei se é isso que você quer mas testa ai:

envia.php:

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<form name="form1" method="post" action="pega.php">

  <p>Nome

    <input name="nome" type="text" id="nome">

</p>

  <p>Senha:

    <input name="senha" type="text" id="senha">

</p>

  <p>email:

    <input name="email" type="text" id="email">

</p>

  <p>Telefone:

    <input name="telefone" type="text" id="telefone">

</p>

  <p>Endereço:

    <input name="endereço" type="text" id="endereço">

</p>

  <p>

    <input type="submit" name="Submit" value="Enviar">

  </p>

</form>

</body>

</html>

pega.php:

<?php

$erro = "off";

foreach ($_POST as $campo => $valor) { $$campo = $valor;

if(empty($valor)){

$campos[] = $campo;

$erro = "on";

}

}

if($erro == "on"){

$campos = serialize($campos);

echo "<script language=\"javascript\">window.open(  'erro.php?campos=$campos', 'Erro', 'top=50,left=80,width=400,height=400' );

window.opener = window

window.close(\"#\")

</script>";

}

echo "se você chegou ate aqui é porque preenchou todos os campos";

?>

popup :

erro.php:

<script language="javascript">

function voltar(){

window.open( 'envia.php' );

window.opener = window

window.close("#")

}

</script>

<?php

$campos = unserialize($_GET["campos]);

$conta = count($campos);

for($i=0;$i<$conta;$i++){

echo"você não preencheu o campo $campos[$i] <br>";

}

echo "<a href='javascript:voltar()'>voltar</a>";

?>

Link para o comentário
Compartilhar em outros sites

  • 0

É quase isso o que eu preciso.

Na realidade, gostaria que fizesse a mesma coisa que o alert faz, mas em uma janela, e só depois de validar os campos chamar o script para incluir no banco.

No script acima, acontece que ao clicar em submit, uma outra janela é aberta no lugar da anterior (o formulário deixa de existir) e ao clicar em voltar os dados se perdem.

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, valeu pelas dicas. Consegui o que queria.

segue abaixo:

<html>
<head><title></title>
</head>

<script Language="JavaScript">


function valida(){

  var mensagem='<BR>Não é possível continuar, pois: ';
  var erro=false;
  
  if (document.login.email.value.length==0){
      erro=true;
      mensagem+='<br> E-mail deve ser informado';
      document.login.email.focus();

  }
  if(document.login.senha.value.length < 5){
      erro=true;
      mensagem+='<BR>Senha inválida';
      document.login.senha.focus();

  }
  if (erro){
//       alert(mensagem);
     popup=window.open('erro.php','_blank','height=305,width=300');
     doc=popup.document;
     doc.write(mensagem);
  }
  return !(erro);
}
</script>




<body>
<div align="center"></center>
<form name="login" method="POST" action="val.php" onSubmit="return valida();">
  <table border="0" width="50%">
    <tr>
      <td>Favor informar seu e-mail e senha</td>
    </tr>
    <tr>
      <td>e-mail</td>
      <td><input type="text" name="email" size="20"> </td>
    </tr>
    <tr>
      <td>Senha</td>
      <td><input type="password" name="senha" size="20"></td>
    </tr>
    <tr>
      <td><input type="submit" value="Enviar" name="enviar"></td>
    </tr>
  </table>
</form>
</body>
</html>


Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...