2009-05-27 2 views
1

Может ли кто-нибудь сказать мне, что я делаю неправильно? мой comparePasswords() не работает ...Сравнение двух полей в форме в Javascript - Не работает

 <script> 

      function comparePasswords() 
      { 
       if (post-form.password.value != post-form.password2.value) 
       { 
        $('passwordShow').innerHTML = ''; 
       } 
       else 
       { 
        $('passwordShow').innerHTML = 'Passwords do not match'; 
       } 
      } 
     </script> 


<form id="post-form" action="signup.php" method="post" > 

<input type="password" id="password" name="password" onkeyup="testPassword(this.value);" maxlength="50" size="25" tabindex="102" value=""> 

<input type="password" id="password2" name="password2" onkeyup="comparePasswords();" maxlength="50" size="25" tabindex="104" value=""> 

</form> 

ответ

1

вам нужно использовать

document.getElementById('password').value 

и

document.getElementById('password2').value 

Кроме того, ваша логика не так. Первый условный блок будет срабатывать, если пароли не совпадают.

EDIT

кажется, что вы используете JQuery, так просто использовать

$('#password').val() 

, чтобы получить значение поля.

Вы также должны установить innerHTML с помощью JQuery (может также) с html() методом

+0

#password. ;) – nickf

+0

Просто нажмите править! спасибо :) – alex

0

Тест в вашем случае, если он находится назад. Первая ветвь тестирует, если оба пароля НЕ равны друг другу.

1

Проблема с, как вы обращаетесь к объекту формы.

post-form.password 

К JavaScript двигателя, это то же самое, как это:

post - (form.password) 

Кроме того, вы должны дать вашей форме name атрибута (а не только идентификатор) для доступа к его таким образом , Если вы хотите получить доступ к нему по имени, вы бы использовать что-то вроде этого:

document['post-form'].password 

Или ID:

document.getElementById("post-form"); 
+1

+1. – alex

+1

15 символов? heh e – alex

+0

:)! – nickf

Смежные вопросы