2010-06-22 8 views
2

Voici mon code:validation pour vérifier si le mot de passe et confirmez le mot de passe sont les mêmes ne fonctionne pas

function validate_form(thisform) 
{ 
with (thisform) 
    { 
     if (validate_required(name,"Name must be filled out!")==false) 
    {name.focus();return false;} 
    if (validate_required(country," Country must be filled out!")==false) 
    {country.focus();return false;} 
    if (validate_required(state,"State must be filled out!")==false) 
    {state.focus();return false;} 
    if (validate_required(city,"City must be filled out!")==false) 
    {city.focus();return false;} 
    if (validate_required(contact,"Contact must be filled out!")==false) 
    {contact.focus();return false;} 
    if (validate_required(emailid,"Email must be filled out!")==false) 
    {emailid.focus();return false;} 
    if (validate_email(userid,"Email is not valid")==false) 
    {userid.focus();return false;} 
    if (validate_required(password,"pasword must be filed out")==false) 
    {password.focus();return false;} 
    if (validate_required(cpassword,"Password must be confirmed")==false) 
    {cpassword.focus();return false;} 

if(validate_required((password.value != cpassword.value),"Your password and confirmation password do not match.")==false) { 
cpassword.focus();return false; 


} 

Tous les autres travaillent mais validations pas le dernier. Pourquoi est-ce le cas et comment y remédier?

Répondre

6

Je présume que vous avez la fonction validate_required() de cette page: http://www.w3schools.com/js/js_form_validation.asp?

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

Dans ce cas, votre dernière condition ne fonctionnera pas comme prévu.

Vous pouvez le remplacer par ceci:

if (password.value != cpassword.value) { 
    alert("Your password and confirmation password do not match."); 
    cpassword.focus(); 
    return false; 
} 
+0

Je l'ai remplacé.Mais encore cela ne fonctionne pas –

+0

devant "if (password.value! = Cpassword.value) {" ajouter ceci: alert (mot de passe.value! = Cpassword.value); qu'obtiens-tu là? – DmitryK

+0

Je ne reçois rien en ajoutant –

3

La fonction validate_required semble attendre un contrôle de formulaire HTML (par exemple, champ de saisie de texte) comme premier argument, et vérifier s'il y a une valeur du tout. Ce n'est pas ce que vous voulez dans ce cas.

Aussi, lorsque vous écrivez ['password'].value, vous créez un nouveau tableau de longueur, contenant le string'password', puis lisez la propriété non-existante "value" de lui, ce qui donne la valeur indéfinie.

Ce que vous pouvez essayer à la place:

if (password.value != cpassword.value) { cpassword.focus(); return false; } 

(Vous devez aussi écrire le message d'erreur en quelque sorte, mais je ne vois pas de votre code comment cela se fait.).

+0

encore son ne fonctionne pas –

+0

le msg d'erreur est donnée comme argument à la fonction –

+0

@bhavna Raghuvanshi: les variables '' password' et cpassword' définir de sorte qu'ils contiennent les éléments DOM? Par exemple, que montre 'alert (password.value)' dans votre fonction? – Boldewyn

1
function validate() 
{ 
    var a=documents.forms["yourformname"]["yourpasswordfieldname"].value; 
    var b=documents.forms["yourformname"]["yourconfirmpasswordfieldname"].value; 
    if(!(a==b)) 
    { 
    alert("both passwords are not matching"); 
    return false; 
    } 
    return true; 
} 
Questions connexes