2010-06-22 1 views
2

Вот мой код:Validation для проверки пароля и подтверждения пароля такие же не работает

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; 


} 

Все другие валидация работают, но не последний. Почему это так и как это исправить?

ответ

6

Предполагаю, что у вас есть функция validate_required() с этой страницы: 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; 
    } 
    } 
} 

В этом случае ваше последнее условие не будет работать так, как вы ожидаете.

Вы можете заменить его следующим образом:

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

Я заменил его. Но все же он не работает –

+0

перед "if (password.value! = Cpassword.value) {" add this: alert (password.value! = Cpassword.value); что вы там доберетесь? – DmitryK

+0

Я ничего не получаю, добавив это –

3

Функция validate_required, похоже, ожидает, что в качестве первого аргумента будет элемент управления формой HTML (например, поле ввода текста) и проверьте, есть ли там значение. В этом случае вы не хотите этого.

Кроме того, когда вы пишете ['password'].value, вы создаете новый массив длины один, содержащий string'password', а затем читать несуществующие свойства "value" от него, что дает неопределенное значение.

Что вы можете попробовать вместо этого:

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

(Кроме того, необходимо, чтобы написать сообщение об ошибке или иначе, но я не могу видеть из кода, как это делается.).

+0

еще ее не работает –

+0

ГЗС ошибка задается как аргумент @bhavna Рагхуванши функция –

+0

: Являются ли переменные '' password' и cpassword' установить, чтобы они содержали элементы DOM? Например, что показывает 'alert (password.value)' внутри вашей функции? – 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; 
} 
Смежные вопросы