我在几个表单上运行了jQuery Validation插件,但对它并不完全满意,所以我转向了另一种解决方案。过了一会儿,我发现我需要回到插件,但我无法正常工作。出于某种原因,它想要验证表单中的所有字段,而不仅仅是那些带有规则的字段。
以下是表格:
<form id="test-form">
<div class="form-group">
<label for="firstName">First Name</label>
<input type="text" name="firstName" id="firstName">
</div>
<div class="form-group">
<label for="lastName">Last Name</label>
<input type="text" name="lastName" id="lastName">
</div>
<input type="submit">
</form>
这是javascript:
$.validator.setDefaults({
errorClass: 'help-block',
errorElement : 'span',
ignoreTitle : true,
highlight : function (element, errorClass, validClass) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight : function (element, errorClass, validClass) {
$(element).closest('.form-group').removeClass('has-error');
}
});
$('#test-form').validate({
rules: {
firstName: {
required: true
}
},
messages: {
firstName: {
required: 'First name is required'
}
}
});
当我运行它(两个表单字段都空白)时,我收到firstName的预期错误消息,但我也收到了lastName的错误。该消息只是说“&#39; message&#39;。
这次我真的无法看到我做的不同,但显然它一定是什么东西!
答案 0 :(得分:1)
您需要将验证插件告诉ignore lastName
字段
$('#test-form').validate({
ignore: '#lastName',
rules: {
firstName: {
required: true
}
},
messages: {
firstName: {
required: 'First name is required'
}
}
});
答案 1 :(得分:0)
好的,所以这归结为一个可笑的随机配置错误。基本上,在我的基本javascript文件中,我有以下几行:
$.validator.addMethod('name', function() {}, 'message');
我已经开始创建一个自定义验证方法,显然已经分心了。这似乎以某种方式将验证器添加到所有表单元素中!