我正在开发一个应用程序解决方案,以便为我提供有限的页面空间,因此无法为每个必填字段应用包含的错误消息。因此,我正在尝试创建一个解决方案,突出显示受影响的必填字段,并仅为表单中的电子邮件地址,电话和密码等指定字段创建自定义消息。
我目前正在使用基本shell(对于包含的消息工作正常)
var v = $("form").validate({
rules: {
email: {
required: true,
email: true
},
confirmEmail: {
required: true,
email: true,
equalTo: "#email"
}
},
messages: {
email: "Please enter a valid email address",
confirmEmail: {
required: "Please enter a valid verify email address",
equalTo: "Both email addresses must be the same."
}
},
errorContainer: errcontainer,
errorLabelContainer: $("ol", errcontainer),
wrapper: 'li',
onkeyup: false,
onblur: false
});
提前感谢您的任何帮助或建议。
答案 0 :(得分:1)
您要做的是在validate插件中实现showErrors挂钩。
您将传递错误消息的映射,然后传递与生成它们的表单元素关联的相同消息的数组。
然后,最好的办法是只获取默认处理程序的副本(在validate插件中调用defaultShowErrors
)并稍加修改(仅显示您关注的处理程序的标签)。
您的验证选项中会出现类似的情况:
showErrors: function(errorMap, errorList) {
for (var i = 0; this.errorList[i]; i++) {
var error = this.errorList[i];
//this is the only real part you modify
if (error.element.id == 'email' || error.element.id == 'confirmEmail') {
this.showLabel(error.element, error.message);
}
this.settings.highlight && this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass);
}
//a whole bunch more stuff after this, from jquery.validate.js
}
在此处查看此想法:http://jsfiddle.net/ryleyb/D3tfu/