我有jQuery Validation插件:
//name validation
cnForm.validate({
rules: {
customerName: {
required: true,
minlength: 3
},
date: {
required: true,
dateRegex: /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d$/,
maxlength: 10
}
},
onkeyup: false,
onclick: false,
onfocusout: false,
messages: {
customerName: {
required: "Unable to proceed, search field is empty"
},
date: {
required: "Unable to proceed, search field is empty"
}
},
errorPlacement: function(error, element) {
var trigger = element.next('.ui-datepicker-trigger');
error.insertAfter(trigger.length > 0 ? trigger : element);
}
});
每当我输入导致错误的数据时,我会在输入框/按钮后显示相应的新标签,但类error
也会应用于输入框。有没有办法避免将该类分配到框中?感谢。
答案 0 :(得分:6)
“...但是类错误也会应用于输入框。有没有办法避免将该类分配到框中?”
使用highlight
和unhighlight
回调函数覆盖默认函数。
这些是默认值......
highlight: function (element, errorClass, validClass) {
if (element.attr('type') === "radio") {
this.findByName(element.attr('name')).addClass(errorClass).removeClass(validClass);
} else {
$(element).addClass(errorClass).removeClass(validClass);
}
},
unhighlight: function (element, errorClass, validClass) {
if (element.attr('type') === "radio") {
this.findByName(element.attr('name')).removeClass(errorClass).addClass(validClass);
} else {
$(element).removeClass(errorClass).addClass(validClass);
}
}
As per docs ...
回调传递三个参数:
<强>元素强>
类型:元素
无效的DOM元素,通常是输入。
<强> errorClass 强>
类型:字符串
errorClass选项的当前值。
<强> validClass 强>
类型:字符串
validClass选项的当前值。
修改强>
完全删除此功能......
$('#myform').validate({
highlight: function (element, errorClass, validClass) {
return false; // ensure this function stops
},
unhighlight: function (element, errorClass, validClass) {
return false; // ensure this function stops
},
// other options
});
答案 1 :(得分:4)
您可以使用突出显示回调来覆盖默认行为。
$(".selector").validate({
highlight: function(element, errorClass) {
// Override the default behavior here
}
});
答案 2 :(得分:1)
“...但是类错误也会应用于输入框。有没有办法避免将该类分配给框?”
$('#formId').validate({
errorElement: 'span',
errorClass: 'errorMessage',
errorPlacement: function (error, element) {
error.insertAfter(element);
},
highlight: function (element, errorClass, validClass) {
$(element).removeClass(errorClass);
},
...
});