2014-08-28 2 views
-4

Ma fonction de validation de formulaire ne fonctionne pas correctement. L'erreur msg affichée dans l'élément innerHTML disparaît dès qu'elle apparaît, comme si la page était refreshed. Je suis nouveau dans javascript. Je ne sais pas qui semble être le problème.Validation de formulaire JavaScript ne fonctionne pas

<script type="text/javascript"> 
    function validate(form) { 
     var user = form.txtUsername; 
     var institute = form.txtinstitute; 
     var email = form.txtemail; 
     var pass1 = form.pwdpassword1; 
     var pass2 = form.pwdpassword2; 
     var check = ""; 

     check = validateFilled(pass2); 
     check = validateFilled(pass1); 
     check = validateFilled(email); 
     if (check == true) { 
      check = validateEmail(email); 
     } 
     check = validateFilled(institute); 
     check = validateFilled(user); 
     if (checked == false) { 
      return false; 
     } 
     //return true; 
    } 

    function validateFilled(control) { 
     if (control.value.length == 0) { 
      document.getElementById(control.id).nextSibling.innerHTML = "* required"; 
      document.getElementById(control.id).focus(); 
      return false; 
     } 
     return true; 
    } 

    function validateEmail(control) { 
     var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]  {1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
     if (!(re.test(email.value))) { 
      document.getElementById(email.id).nextSibling.innerHTML = " *invalid email"; 
      document.getElementById(email.id).focus(); 
      return false; 
     } 
     return true; 
    } 

</script> 
+6

questions visant à obtenir l'aide de débogage (« pourquoi pas ce code fonctionne? ») Doit comprendre le comportement souhaité , un problème ou une erreur spécifique et le code le plus court nécessaire pour le reproduire dans la question elle-même. Les questions sans énoncé de problème clair ne sont pas utiles aux autres lecteurs. –

+0

Lorsque vous envoyez un formulaire, la page reçoit un événement de retour. Pour éviter que votre page soit rechargée, ajoutez dans votre fonction un événement où vous gérez l'événement click: event.preventDefault(); – Jerome2606

+0

Merci ...... Je suis nouveau dans javascript et dans ce forum, je vais améliorer mon format de demander qestions @EmilLundberg – user3725251

Répondre

0
check = validateFilled(pass2); 
    check = validateFilled(pass1); //overrides check above 
    check = validateFilled(email); //overrides check above 
    if (check == true) { 
     check = validateEmail(email);//overrides check above 
    } 
    if (check == true) { 
     check = validateEmail(email);//overrides check above 
    } 
    check = validateFilled(institute);//overrides check above 
    check = validateFilled(user);//overrides check above 

Donc, si l'un de ceux qui sont fausses, les autres contrôles sous il sera plus vrai. Design Bad ....

Vous devez définir uniquement vérifier false si la validation échoue ....

+0

Merci @epascarello. ..... Je vais essayer ça ... Je suis novice – user3725251

Questions connexes