JQuery表单验证

时间:2009-06-08 17:14:29

标签: jquery

我的问题是,我有一个表单,我想使用jquery验证字段,如果数据是正确的我让提交继续,如果没有我通过返回false禁用默认行为(看到在教程,here) 所以我使用了我说的jquery语法,当文档准备就绪时,我注册了按钮的click事件,问题是代码永远不会被执行。我使用了萤火虫,但没有任何线索。没有任何反应,所以这是我的代码:

$('#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
});

4 个答案:

答案 0 :(得分: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>并且淡入其中的内容比丑陋的默认浏览器提醒框更好。

答案 1 :(得分:2)

由于您说您正在使用表单,因此可以绑定到表单的submit事件:

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

答案 2 :(得分:2)

您应该查看JQuery Validation Plugin。它由JQuery团队的一名成员维护,它有助于简化客户端表单验证。

答案 3 :(得分:0)

你的问题是你总是返回false,它应该如下所示:

$('#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;
});