Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

luciano

[Resolvido] Validação texto e numero

Recommended Posts

Na verdade, estava pesquisando aqui sobre lookarounds e a ER deve ser a seguinte:

var regex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,12}$/;

Além disso, não use esse tipo de construção:

form.nome_elemento.value;

Faça assim:

var form = document.getElementById('form_faleconosco'); //Certifique-se que o seu form possui o atributo id="form_faleconosco"
form.onsubmit = function(e){
e = e || window.event;
var campoNome = this.getElementById('nome'); //Certifique-se também que o input com name "nome" possui o id="nome"
var campoSenha = this.getElementById('senha'); //Certifique-se também que o input com name "senha" possui o id="senha"

//Previne que o usuário preencha o campo apenas com espaços vazios
if(campoNome.value.replace(/(^\s+)|(\s+$)/, '') == ''){
   	alert('Por favor, informe o seu nome');
   	e.preventDefault(); //Impede que o form seja enviado
   	campoNome.focus();
}

if(!(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,12}$/.test(campoSenha.value)){
   	alert('Por favor, informe uma senha válida! Ela deve possuir de 6 a 12 caracteres, pelo menos 1 letra minúscula, 1 letra maiúscula e 1 dígito');
   	e.preventDefault(); //Impede que o form seja enviado
   	campoNome.focus();
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Criei um post no meu blog explicando certinho o que é essa ER que o nosso colega @pvpzaum mostrou:

:seta: http://henriquebarcelos.in/blog/2011/10/27/verificacao-de-senha-com-restricoes-lookaheads-em-expressoes-regulares

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Henrique Barcelos, muito bom mesmo parabéns, só esta dando um errinho

'form' é nulo ou não é um objeto

onde que eu errei?? veja o cod.:

----------------------------------------------

<script Language="JavaScript"> 
<!-- 
var form = document.getElementById('form_faleconosco'); //Certifique-se que o seu form possui o atributo id="form_faleconosco"
form.onsubmit = function(e){
   	e = e || window.event;
   	var campoNome = this.getElementById('nome'); //Certifique-se também que o input com name "nome" possui o id="nome"
   	var campoSenha = this.getElementById('senha'); //Certifique-se também que o input com name "senha" possui o id="senha"

   	//Previne que o usuário preencha o campo apenas com espaços vazios
   	if(campoNome.value.replace(/(^\s+)|(\s+$)/, '') == ''){
   	alert('Por favor, informe o seu nome');
   	e.preventDefault(); //Impede que o form seja enviado
   	campoNome.focus();
   	}
   	if(!(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,12}$/.test)(campoSenha.value)){
   	alert('Por favor, informe uma senha válida! Ela deve possuir de 6 a 12 caracteres, pelo menos 1 letra minúscula, 1 letra maiúscula e 1 dígito');
   	e.preventDefault(); //Impede que o form seja enviado
   	campoNome.focus();
   	}
} 
//--> 
</script> 

<form name="form" method="post" action="form.asp" id="form_faleconosco" onsubmit="return form_faleconosco()"> 
Nome:<INPUT TYPE="text" NAME="nome" id="nome"><br> senha<INPUT TYPE="text" NAME="senha" id="senha"><br> 
<INPUT TYPE="submit" NAME="Submit" VALUE="Submit"> </FORM>

------------------------

obrigado por sua ajuda

fique com deus

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou você espera o html carregar com um window.onload

 

ou você coloca o script depois do form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais ai não faz as validações.. envia sem validar

 

ou você espera o html carregar com um window.onload

 

ou você coloca o script depois do form.

Compartilhar este post


Link para o post
Compartilhar em outros sites
window.onload = function(){
  //seu codigo aqui dentro
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal o erro não aparece mais , porem não faz a validação, envia direto mesmo sem preencher os dados

valew

abraços

 

 

window.onload = function(){
  //seu codigo aqui dentro
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

no console do Firefox aparece algum outro erro ?

 

Ctrl+Shift+J

 

precisa debugar, e ver onde o script está parando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no firefox:

form is null linha 12

form_faleconosco is not a function linha 1

 

-----------

linha 12 é: form.onsubmit = function(e){

 

-------

no IE

Detalhes dos erros da página da Web

 

Agente de Usuário: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS121192; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; msn OptimizedIE8;PTBR)

Carimbo de data/hora: Fri, 28 Oct 2011 13:37:27 UTC

 

 

Mensagem: O objeto não dá suporte para a propriedade ou método

Linha: 14

Caractere: 9

Código: 0

 

--------------------------------

novamente valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza.. agora você tem por onde começar.

 

entenda o código e corrija. Leitura:

http://wbruno.com.br/blog/2011/03/31/como-debugar-javascript-firefox-erros-comuns/

Compartilhar este post


Link para o post
Compartilhar em outros sites

você já colocou o window.onload ?

 

mostre como ficou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficou assim:

<script Language="JavaScript"> 
<!-- 
window.onload = function (){

var form = document.getElementById('form_faleconosco'); 
form.onsubmit = function(e){
   	e = e || window.event;
   	var campoNome = this.getElementById('nome'); 
   	var campoSenha = this.getElementById('senha'); 

   	//Previne que o usuário preencha o campo apenas com espaços vazios
   	if(campoNome.value.replace(/(^\s+)|(\s+$)/, '') == ''){
   	alert('Por favor, informe o seu nome');
   	e.preventDefault(); //Impede que o form seja enviado
   	campoNome.focus();
   	}
   	if(!(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,12}$/.test)(campoSenha.value)){
   	alert('Por favor, informe uma senha válida! Ela deve possuir de 6 a 12 caracteres, pelo menos 1 letra minúscula, 1 letra maiúscula e 1 dígito');
   	e.preventDefault(); //Impede que o form seja enviado
   	campoNome.focus();
   	}
} 
}
//--> 
</script> 

<form action="form.asp" method="post" id="form_faleconosco" NAME="form_faleconosco"> 

Nome:<INPUT TYPE="text" NAME="nome" id="nome"><br> senha<INPUT TYPE="text" NAME="senha" id="senha"><br> 
<input type="submit"   value="Enviar" /></FORM>

 

-------- Obrigado pelo apoio ------------

Compartilhar este post


Link para o post
Compartilhar em outros sites
use o Responder Azul respondery.png

ou a 'Resposta Rápida'.

 

o erro não ta condizendo com o script apresentado. Tem online para verificarmos ?

 

 

deixe assim:

<script type="text/javascript"> 
window.onload = function (){

   var form_fale = document.getElementById('form_faleconosco'); 

   alert( form_fale.id );//informe oq retorna desse alert

   form_fale.onsubmit = function(e){
       e = e || window.event;
       var campoNome = this.getElementById('nome'); 
       var campoSenha = this.getElementById('senha'); 

       //Previne que o usuário preencha o campo apenas com espaços vazios
       if(campoNome.value.replace(/(^\s+)|(\s+$)/, '') == ''){
           alert('Por favor, informe o seu nome');
           e.preventDefault(); //Impede que o form seja enviado
           campoNome.focus();
       }
       if(!(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,12}$/.test)(campoSenha.value)){
           alert('Por favor, informe uma senha válida! Ela deve possuir de 6 a 12 caracteres, pelo menos 1 letra minúscula, 1 letra maiúscula e 1 dígito');
           e.preventDefault(); //Impede que o form seja enviado
           campoNome.focus();
       }
   } 
}
</script>

:lol:

e o form deixe:

<form action="form.asp" method="post" id="form_faleconosco"> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque os :

 

 e.preventDefault(); //Impede que o form seja enviado

por

 return false; //Impede que o form seja enviado

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque:

 

        var campoNome = this.getElementById('nome'); 
       var campoSenha = this.getElementById('senha'); 

por

        var campoNome = document.getElementById('nome'); 
       var campoSenha = document.getElementById('senha'); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou procurando uma solução quase desta maneira.

A diferença é a seguinte:

 

A senha deverá ter no mínimo 6 e máximo 20 caracteres e ser composta de pelo menos 3 letras e 1 número.

 

Podem me ajudar a fazer com isso funcione?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.