1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

JavaScript - Validação de Formulário

Discussão em 'Web Development' iniciada por Rexobias, 9 de Março de 2009. (Respostas: 2; Visualizações: 2182)

  1. Rexobias

    Rexobias Power Member

    Malta, visto que ainda sou noob em JavaScript, precisava de ajuda aqui numa tarefa que é muito simples, mas por alguma razão não estou a conseguir executar a mesma.

    Tenho um formulário com 3 campos (nome, e-mail e mensagem) e ao carregar no botao validar, é preciso verificar se algum dos 3 campos tem dados inválidos e indicar qual é.

    Neste momento tenho a verificação do campo mail a funcionar.

    Os meus problemas são:
    -O campo nome só aceita letras minusculas. Letras com acentos, maiusculas e espaços não são aceites, quando, obviamente, eu pretendia que fossem igualmente aceites.
    -O campo mensagem, aceita tudo, só não pode estar vazio. Não consigo perceber porque que não é devolvido o erro quando o campo se encontra efectivamente vazio.

    Aqui fica o código:

    Código:
    <HTML>
    <HEAD>
    <TITLE>Ficha 3 - Exercicio I 1</TITLE>
    <SCRIPT TYPE="text/javascript">
    function verificaNome()
     {
     if (formulario.txtNome.value.match("^[a-z]+$"))
      {
      return true;
      }
     else
      {
      alert("Erro: Nome Inválido!");
      formulario.txtNome.value="";
      return false;
      }
     }
    function verificaMail()
     {
     if ((formulario.txtMail.value.indexOf(".")>2) && (formulario.txtMail.value.indexOf("@")>0))
      {
      return true;
      }
     else
      {
      alert("Erro: E-Mail Inválido!");
      formulario.txtMail.value="";
      return false;
      }
     }
    function verificaMensagem()
     {
     if (formulario.txtMensagem.value=="")
      {
      return true;
      }
     else
      {
      alert("Erro: Mensagem Inválida!");
      formulario.txtMensagem.value="";
      return false;
      }
     }
    function verifica()
     {
     verificaNome();
     verificaMail();
     verificaMensagem();
     }
    </SCRIPT>
    </HEAD>
    <BODY>
    <FORM ID="formulario">
    Nome:
    <BR>
    <INPUT TYPE="text" ID="txtNome" SIZE=50>
    <BR>
    E-mail:
    <BR>
    <INPUT TYPE="text" ID="txtMail" SIZE=50>
    <BR>
    Mensagem:
    <BR>
    <TEXTAREA NAME="txtMensagem" ROWS="10" COLS="50"></TEXTAREA>
    <BR>
    <INPUT TYPE="button" ID="btnValidar" VALUE="Validar" onClick="verifica()">
    </FORM>
    </BODY>
    </HTML>
    
    Já agora, se acharem que há uma maneira melhor de fazer isto, indiquem se faz favor.

    Obrigado pela atenção.
     
  2. Corpsegrinder

    Corpsegrinder Banido

    - Quanto ao nome, o problema está na expressão regular que estás a utilizar para fazer a sua verificação.
    Pode ser que isto ajude http://pt.wikipedia.org/wiki/Express%C3%A3o_regular
    Por exemplo.. para aceitar minusculas, maiusculas, números e espaços (mas não começar por espaço(s)):
    Código:
    ...
    if (formulario.txtNome.value.match("^[a-zA-Z0-9][a-zA-Z0-9 ]+$"))
    ...
    
    - Quanto à mensagem, ele efectivamente detecta que nao tem lá nada, mas como não estás a despoletar nenhum aviso de erro :P ele por iniciativa própria também nao o vai fazer ;)
     
    Última edição: 10 de Março de 2009
  3. Rexobias

    Rexobias Power Member

    Esquece, lol ... o erro da mensagem é mesmo alta estupidez minha :(

    Também já sei como resolver o erro do nome.

    Muito Obrigado ... sinto-me meio envergonhado por ter aberto um tópico com dúvidas tão DAHHH :D
     

Partilhar esta Página