我正在使用JQuery Validation plugin来处理表单验证。
我遇到的问题是,当隐藏表单时,验证插件会忽略需要验证的字段,并直接跳转到提交表单。
我已经浏览了插件的options并搜索了这个问题,但我找不到任何指明隐藏表单中的字段被忽略的原因。
值得注意的是,如果页面上有两个表单,其中一个表单被隐藏而另一个表单显示,则如果两个表单都使用相同的验证方法,则表明两个表单都已成功验证。但是,如果您调用两个单独的验证方法,则隐藏表单中的字段仍会被忽略。
的 使用相同的验证函数验证两个表单:http://jsfiddle.net/Qg5WQ/1/
使用不同的验证功能验证两个表单:http://jsfiddle.net/Qg5WQ/2/ 的的
有谁知道这是一个错误还是有特定的方法来验证隐藏的表单?
答案 0 :(得分:11)
试试这个http://jsfiddle.net/Qg5WQ/3/
我在ignore
电话中添加了hidden
:validate
选项。
$("form").validate({
ignore: 'hidden',
rules: {
"first": "required"
},
invalidHandler: function() {
alert("error");
},
submitHandler: function( form ) {
alert("no error");
}
});
答案 1 :(得分:7)
如果您查看documentation page上的ignore
选项,则表示默认值为:hidden
。这显然意味着如果您没有明确指定ignore
选项,验证将忽略隐藏的输入。
只需定义ignore
选项(可以留空),它就可以解决问题。
$("form").validate({
ignore: '',
rules: {"hidden_field": {required:true}}
});