2017-08-30 2 views
1

J'ai un formulaire pour enregistrer les informations des utilisateurs pour la demande d'inscription. Je le fais par html et javascript et php. lorsque l'utilisateur écrivez erreur adresse email ce code courir et tomber en boucle.pourquoi mon code javascript qui valide l'adresse e-mail lorsque l'utilisateur écrivez erreur adresse e-mail courir et tomber en boucle?

ma fonction javascript est-il:

function checkmail() 
{ 

var email = document.forms["frmreg"]["email"].value; 
var filter1 = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 


if (!filter1.test(email) && email!='') 
{ 

alert('your email address is invalid'); 

return false; 
    } 

} 

et champ de saisie Adresse email:

<tr> 

      <td>Your Email:</td> 

      <td width="180" colspan="2"><input name="email" style="color: #000; font-family: Tahoma"dpieagent_iecontroltype="2" onkeypress="" onblur="checkmail()" /> &rArr; To recover password and notification </td> 

     </tr> 

pourquoi ce mon code javascript qui valide l'adresse e-mail lorsque l'utilisateur écrire mauvais run adresse e-mail et à l'automne en boucle?

Pour éviter de tomber dans la boucle je définissais une variable pour empêcher la fonction d'être répétée

Donc, mon code a changé un peu de cette façon:

d'abord je défini une variable en dehors de la fonction:

var repeatmailalert=1; 

function checkmail() 
{ 

var email = document.forms["frmreg"]["email"].value; 
var filter1 = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 


if (!filter1.test(email) && repeatmailalert==1 && email!='') 
{ 
    repeatmailalert++; 
alert('your email address is invalid'); 

return false; 
} 
if(repeatmailalert>1){repeatmailalert=1;} 
} 

Que puis-je faire pour résoudre ce problème?

+0

Je vais essayer de retirer la ligne si (repeatmailalert> 1) {repeatmailalert = 1;} et voir ce qui se passe .... n'ont pas le temps de me mettre en œuvre. .. – JosephDoggie

+1

** merci pour votre réponse MAIS j'ai écrit cette ligne pour retourner la valeur à un et courir à nouveau après un seul arrêt ** – harix

+1

Quand vous dites courir et tomber dans la boucle voulez-vous dire boucle infinie? –

Répondre

1

Essayez ceci:

if(email!=''){ 
    if(!filter1.test(email)){ 
     alert('your email address is invalid'); 
    }else{ 
    //validated 
    } 
} 
+0

thanks.this travaux – harix