2010-05-16 7 views
-1

J'ai ajouté quelques javascript dans la page html pour la validation d'entrée. Page fonctionne correctement IE et chrome, mais mozila son ne fonctionne pas.Le problème est lorsque l'utilisateur entre des données invalides son supposé montrer boîte msg d'alerte et lorsque l'utilisateur clique sur OK il doit retourner faux pour former ... MAIS mozila n'attend pas zone d'alerte il montre juste zone d'alerte pour 5-6 sec puis va vers la page suivante définie en formulaire action = "nextpage.php"Java script ne fonctionne pas dans mozila

function validate_form(thisform) 
    { 
    with (thisform) 
     { 
     if (validate_required(oldpassword, "<b>Error: </b>Please enter the Old Password!") == false) 
     { changeColor("oldpassword"); return false; } 

     else if (valid_length(newpassword, "<b>Error: </b>Please enter the New Password!!") == false) 
     {newpassword.value=""; changeColor("newpassword"); return false; } 

     else if (valid_length(cnfpassword, "<b>Error: </b>Please enter the Confirm Password!!") == false) 
     {cnfpassword.value=""; changeColor("cnfpassword"); return false; } 

     else if (document.getElementById('newpassword').value != document.getElementById('cnfpassword').value) 
     {changeColor("newpassword");cool.error("<b>Error: </b>Passwords entered are not same!"); 
     newpassword.value="";cnfpassword.value="";return false;} 

    } 
}function validate_required(field, alerttxt) 
    { 
    with (field) 
     { 
     if (value == null || value == "") 
      { 
      cool.error(alerttxt);return false; 
      } 
     else 
      { 
      return true; 
      } 
     } 
    } 

cool.error est rien CSS nd Js chose alerte box.I il n'y a aucun problème dans mon le code problème météo est dans un certain navigateur settings.Is si ??? car il fonctionne bien dans IE et Chrome.

+3

En règle générale, ne supposez jamais que le bug est ** pas dans votre code **, 99,9999% du temps, au moins sur les plateformes établies, ** c'est votre code **, en supposant que le contraire ne fera rien mais perdre du temps à trouver la cause. –

+0

comme un autre vous ne voulez pas regarder dans certains plugins de validation jquery pourrait vous faire gagner du temps – mcgrailm

Répondre

4

Vous utilisez un comportement IE-only non standard qui crée des variables globales pour chaque élément avec un ID.

Pour corriger ce problème, ajoutez une variable globale pour chaque élément que vous utilisez:

var oldpassword = document.getElementById("oldpassword"); 

En outre, vous ne devriez jamais utiliser le bloc with de Javascript.
Il est très différent du bloc with de VB, et ne devrait pas être utilisé à moins que vous compreniez vraiment ses pièges et ses lacunes. Cela ralentira également votre code.

+1

désolé je ne vous ai pas obtenu ... pouvez-vous expliquer plus ... – nectar

+0

Ajouter des lignes comme 'var oldpassword = document.getElementById (" oldpassword ");' en dehors de vos fonctions pour chaque élément HTML que vous utilisez en Javascript. – SLaks

+0

Ou 'myformobject.elements.oldpassword' si vous utilisez uniquement des noms. Mais utiliser des ID est plus facile. – bobince

0

Vous pouvez également utiliser une bibliothèque javascript pour résoudre les problèmes de navigateur. J'enracine pour jQuery.

+1

Peut-on utiliser jquery pour la validation en tant que javascript? – nectar

Questions connexes