我的验证脚本工作正常,但我使用内联块错误并隐藏它们。当jQuery Validation插件将它们切换回来时,我猜它会使用show在内联显示中抛出:块或显示:内联样式取决于标记。我需要做的是显示:inline-block。在jQuery Validate显示错误之后,有没有办法可以将css选择器附加到每个字段?
这是一个片段。
$(document).ready(function() {
$("#applicationForm").validate({
errorElement: 'span',
errorContainer: $('.error'),
rules: {
email: {
required: true,
email: true
},
emailVerify: {
required:true,
email:true,
equalTo: "#email"
}
}
});
});
答案 0 :(得分:1)
我不是100%明确你需要做什么,但你可以通过实施showErrors
函数覆盖验证插件处理显示错误的方式。
默认的看起来基本上是这样的:
showErrors: function(errorMap, errorList) {
for (var i = 0; this.errorList[i]; i++) {
var error = this.errorList[i];
this.showLabel(error.element, error.message);
this.settings.highlight && this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass);
}
if (this.errorList.length) {
this.toShow = this.toShow.add(this.containers);
}
if (this.settings.success) {
for (var i = 0; this.successList[i]; i++) {
this.showLabel(this.successList[i]);
}
}
if (this.settings.unhighlight) {
for (var i = 0, elements = this.validElements(); elements[i]; i++) {
this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass);
}
}
this.toHide = this.toHide.not(this.toShow);
this.hideErrors();
this.addWrapper(this.toShow).show();
}
听起来你的偏好是将最后一行更改为其他内容。
实现invalidHandler
可能更简单,并让该函数找到错误元素并适当地更改它们的显示属性。