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

Comportamento estranho de função


Clecio Anderson

Pergunta

Olá a todos, esse é meu primeiro tópico...

Aos mais experientes com essa linguagem de script, pergunto:

Nesse link http://www.mhavila.com.br/topicos/web/valform.html são mostrados alguns códigos legais para validação de formulário.

Tentei usar o primeiro caso, para mim só interessa a parte que testa se há números ou não no input:

<script type="text/javascript">
var reDigits = /^\d+$/;

function doDigits(pStr)
{
    if (reDigits.test(pStr)) {
        alert(pStr + " contém apenas dígitos.");
    } else if (pStr != null && pStr != "") {
        alert(pStr + " NÃO contém apenas dígitos.");
    }
}
.
Outras funções
.
</script>
Não consigo ver o que faço de errado, se digito apenas numeros(ex. 5555) no meu input a função funciona beleza, mas se eu misturar com letras(ex. 5555p)...aí não funciona... Na página do carinha lá funciona beleza, com qualquer um dos exemplos acima. Segue abaixo o meu("Copiado do cara né...") java script:
//O conteúdo abaixo é um javascript externo que chamo no html principal...
var numeros = /^\d+$/;

function checaform(contato){

if(numeros.test(document.contato.nome.value)){
alert("O campo nome não pode conter números!");
contato.nome.focus();
return(false);
}

}

//Meu HTML...

//Chamada do javascript externo...
&lt;script type="text/javascript" src="validacao.js"></script>

//Meu form...

<form onsubmit="return checaform(this)" name="contato" method="post" action="#" enctype="text/plain">
<fieldset class="pessoais">
<label>Nome <input type="text" name="nome" maxlength="32"></label>
</fieldset>
<input type="submit" name="Enviar" value="Enviar">
</form>

SÓ GOSTARIA DE ENTENDER ESSE COMPORTAMENTO DE MINHA FUNÇÃO, Obrigado antecipadamente a todos que lerem esse tópico...

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Obrigado pela resposta PROUST.

Eu entendo essa expressão regular sem problemas.

Se ela funciona no formulário do cara deveria funcionar no meu também. Afinal é a idêntica expressão regular.

No form do cara ela valida tanto numeros como o caso letra+numeros e no meu formulário só valida os números.

Se eu digitar uma combinação de letras e numeros, trata logo tudo como letras e vai para o próximo campo, não entendo isso.

Se tiver alguma sugestão do que pode estar errado no meu caso....agradeço

Fiz mais alguns testes. Aparentemente a partir do momento que você mistura numero com letras isso é considerado como string.

Após isso eu entendi o porquê dessas linhas de códigos aqui:

} else if (pStr != null && pStr != "") {
        alert(pStr + " NÃO contém apenas dígitos.");
    }

Isso testa se o campo está vazio ou com caracter nulo "".

Após adicionar essa parte do código no meu javascript o comportamento da função voltou a ser idêntico ao apresentado na página do cara.

:unsure: Parece que não sei nem copiar e colar o código dos outros....rsrsrs...

Obrigado PROUST pela ajuda. Até a próxima!!!

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,3k
    • Posts
      652,1k
×
×
  • Criar Novo...