Joe*_*Joe 5 jquery jquery-validate
我一直在努力为我的网站提供一个很好的验证解决方案,但我遇到了不同选项的问题.我已经彻底阅读了文档并查看了示例,但我仍然遇到问题.
我的表格在桌子上.我希望每一行都有它自己的错误行,它通常是隐藏的,但是会在适当时显示每一行.
以下选项隐藏并显示错误行正常,但每个错误行中显示的错误消息是每个错误消息的整个串联:
$('#myform').validate({
rules: {
firstName: "required",
lastName: "required"
},
messages: {
firstName: "Enter your first name.",
lastName: "Enter your last name."
},
errorContainer: '.errorRow',
errorLabelContainer: '.errorRow.appValueColumn',
errorPlacement: function(error, element) {
error.appendTo( element.parent().next() );
}
});
Run Code Online (Sandbox Code Playgroud)
所以我尝试使用showErrors选项,如下所示:
$('#myform').validate({
rules: {
firstName: "required",
lastName: "required"
},
messages: {
firstName: "Enter your first name.",
lastName: "Enter your last name."
},
errorContainer: '.errorRow',
errorContainer: '.errorRow.appValueColumn',
showErrors: function(errorMap, errorList) {
$.each(errorMap, function(key, value) {
$('#'+key).parent().next().children('.appValueColumn').html(errorMap[key]);
});
Run Code Online (Sandbox Code Playgroud)
好了,现在错误都被分开并显示在正确的位置,但是我无法.errorRows显示.我在这做错了什么?
非常感谢
如果您查看 showErrors 方法的验证插件的源代码,您会发现:
this.settings.showErrors
? this.settings.showErrors.call( this, this.errorMap, this.errorList )
: this.defaultShowErrors();
Run Code Online (Sandbox Code Playgroud)
这意味着如果您为此方法提供自定义处理程序,则不会执行默认行为。
您可以在自己的 showErrors 处理程序末尾调用 this.defaultShowErrors() ,它将变为:
showErrors: function(errorMap, errorList) {
$.each(errorMap, function(key, value) {
$('#'+key).parent().next().children('.appValueColumn')
.html(errorMap[key]);
});
this.defaultShowErrors();
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 !
| 归档时间: |
|
| 查看次数: |
4507 次 |
| 最近记录: |