如果有人点击“创建”按钮,我想在我的整个注册表单中执行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);
}
}
});
});
});
答案 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/