2009-06-08 2 views
4

Хорошо, моя проблема в том, что у меня есть форма, которую я хочу проверить поля с помощью jquery, если данные верны, я даю submit continue, если нет, я отключу поведение по умолчанию, вернув false (saw это в учебнике, here).
поэтому я использовал, поскольку я сказал синтаксис jquery, когда документ готов, я зарегистрирован для события нажатия кнопки, проблема заключается в том, что код никогда не выполняется. Я использовал firebug, но не понял. ничего не происходит, так вот мой код:
Проверка формы JQuery

$('#submitBtn').click(function() 
{ 
    var password1 = $('#form_password').val(); 
    var password2 = $('#form_password2').val(); 
    if(password1 != password2) 
    { 
     alert("the two passwords are not equal."); 
    } 
    return false; //to disable the default behavior of the submit btn 
}); 

ответ

6

Правильный способ проверки формы представления является проверка submit событий формы, а не click событие кнопки. Измените это, и то, что у вас есть, должно работать, хотя сейчас оно всегда делает return false;, поэтому форма никогда не будет отправлена. Это следует сделать это:

$('#myform').submit(function() { 
     var motPasse1 = $('#form_motPasse').val(); 
     var motPasse2 = $('#form_motPasse2').val(); 
     if(motPasse1 != motPasse2){ 
      alert("Les deux mot de passe ne sont pas identiques"); 
      return false; // cancel form submission if passwords don't match 
     } 
     return true; // return true if no errors 
}); 

Наконец, я надеюсь, что вы не держа alert там для производственных целей. :) Есть много, гораздо лучшие способы отображения уведомлений пользователей, чем предупреждение. Отъезд this question для некоторых предложений, хотя что-то такое же, как с ошибкой <div> и затухание в нем лучше, чем уродливое окно предупреждения обозревателя по умолчанию.

+0

спасибо, но проблема в том, что форма отправляется каждый раз, когда я пытаюсь. поверь мне, я бы не просил о помощи, если это не так. – abdelkarim

+0

Вы уже пытались привязать его к событию отправки формы? Как я уже сказал, если вы привязываете его к событию нажатия кнопки, это не является надежным способом проверить его, так как нажатие кнопки не запускает событие. –

+0

с помощью отправки тезиса, он отлично работает, спасибо за вашу помощь. – abdelkarim

0

ваша проблема в том, что вы всегда возвращаются ложь это должно выглядеть следующим образом:

$('#envoyerButton').click(function() 
{ 
     var motPasse1 = $('#form_motPasse').val(); 
     var motPasse2 = $('#form_motPasse2').val(); 
     if(motPasse1 != motPasse2) 
     { 
       alert("Les deux mot de passe ne sont pas identiques"); 
       return false; 
     } 
     return true; 
}); 
2

Так как вы сказали, что вы используете форму, вы можете связать с submit событий формы:

$('form#id').submit(function(){ 
    // your validation code 
}); 
2

Вы должны посмотреть на JQuery Validation Plugin. Он поддерживается одним из членов команды JQuery, и это упрощает процедуру проверки на стороне клиента.

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