我正在使用jQuery Validation Plugin。有没有办法从jQuery表单验证中获取错误类型?例如,
$('mform').validate({
rules: {
email: {
required: true,
maxlength: 40
}
},
messages: {
email: {
required: "This is a required field.",
maxlength: "Please enter less than 40 chars"
}
},
errorPlacement: function(error, element) {
error.appendTo(element.parent());
}
});
我想只放置从" required"生成的错误消息。 " div"内的错误在html页面的某个地方而不是将其附加到" element.parent()"。如果我可以获得错误类型,例如"需"或" maxlength"错误,我可以编写代码来执行此操作。
Can we get the jQuery Validate error type?
上述问题没有提到要添加的参数。所以再问一遍。
任何帮助表示赞赏!谢谢!
答案 0 :(得分:1)
编辑:简答:
您要求的内容无法使用此插件完成。 (这也是非常罕见的情况,默认情况下无法完成的事情也可能无法完成完全没有。)
1)使用此插件作为起点编写您自己的自定义插件。自己做一个认真的尝试,然后回到SO并在遇到问题时发布一个更详细的新问题。
2)找一个已经做你想要的插件。但是,我怀疑是否存在,因为所请求的选项不是人们通常想要的。无论触发它的规则如何,一致且统一的用户体验意味着所有错误消息的处理方式都相同。
原始答案如下......
我想你可以像这样使用errorPlacement
回调函数......
errorPlacement: function (error, element) {
if (error.text().indexOf("required") !== -1) {
error.insertAfter(element);
} else {
error.insertBefore(element);
}
}
DEMO:http://jsfiddle.net/VVaKV/
但是,此解决方案存在一些缺陷,因为它只处理第一条错误消息上label
的初始位置。所有后续消息都将处于相同的初始位置,因为插件仅在创建后显示/隐藏消息label
。 (它可以在每个字段上只有一种类型的消息的情况下很好地工作。)
我不认为任何other callback functions会更好用,因为你想要的东西没有内置到这个插件中。 (可能是因为大多数人认为当所有错误具有始终如一的统一外观时,用户不会感到困惑,IMO。)
我已经回答了几个关于这个插件的SO问题,而你的第一个问题是我遇到过的,要求能够以不同于另一个的方式处理一种错误消息。大多数人只是想要更一致的用户体验。
答案 1 :(得分:0)
试试这个:
errorPlacement: function(error, element) {
var message = $(error).text();
// here message is your error text message
}