如何在我的注册表单中使用jquery验证

时间:2014-06-10 19:53:19

标签: javascript jquery twitter-bootstrap-3 jquery-validate

如果有人点击“创建”按钮,我想在我的整个注册表单中执行jquery验证。

我的问题是在我点击按钮后没有真正发生。有人可以帮我这个吗?

当前输出:http://jsfiddle.net/5kcsn/3/

$(document).ready(function () {
    $('#create').click(function () {
        $('form').validate({
            rules: {
                fname: {
                    minlength: 3,
                    maxlength: 15,
                    required: true
                },
                lname: {
                    minlength: 3,
                    maxlength: 15,
                    required: true
                },
                email: {
                    required: true,
                    email: true
                },
                reemail: {
                    required: true,
                    email: true
                },
                password: {
                    minlength: 6,
                    maxlength: 15,
                    required: true
                },
                gender: {
                    required: true
                },
                month,
                day,
                year: {
                    required: true
                }
            },
            highlight: function (element) {
                $(element).closest('.form-group').addClass('has-error');
            },
            unhighlight: function (element) {
                $(element).closest('.form-group').removeClass('has-error');
            },
            errorElement: 'span',
            errorClass: 'help-block',
            errorPlacement: function (error, element) {
                if (element.parent('.input-group').length) {
                    error.insertAfter(element.parent());
                } else {
                    error.insertAfter(element);
                }
            }
        });
    });
});

1 个答案:

答案 0 :(得分:1)

你有三个问题。

1)rules选项中的格式无效。此选项的参数只能是key:value对。您不能使用逗号分隔的字段名称列表来代替单个key

month,  // <- key is missing value.  key:value
day,    // <- key is missing value.  key:value
year: {
    required: true
}

应该......

month: {
    required: true
},
day: {
    required: true
},
year: {
    required: true
}

2)您在.validate()处理程序中未正确放置click方法。 .validate()只是插件的初始化方法,在DOM ready事件处理程序中被调用一次。

3)您的<button>type="button",插件将始终忽略该type="submit"。将其更改为{{1}},以便自动捕获。

注意:我注意到你有两个不同的DOM就绪事件处理程序。这不是必需的。所有代码都可以放在一个DOM就绪处理程序中。

更新了DEMO:http://jsfiddle.net/5kcsn/8/