Javascript JQuery验证器-特定于规则的错误位置
我正在使用jquery验证程序 我已将自定义规则应用于表单中的一组元素。这些输入还可能具有与之相关联的其他(标准)规则。如果元素不符合我的自定义规则,我需要将错误消息放在一个地方,如果元素不符合标准规则,我需要将错误消息放在另一个地方 我需要像这样的东西-Javascript JQuery验证器-特定于规则的错误位置,javascript,jquery,validation,errorplacement,Javascript,Jquery,Validation,Errorplacement,我正在使用jquery验证程序 我已将自定义规则应用于表单中的一组元素。这些输入还可能具有与之相关联的其他(标准)规则。如果元素不符合我的自定义规则,我需要将错误消息放在一个地方,如果元素不符合标准规则,我需要将错误消息放在另一个地方 我需要像这样的东西- errorPlacement: function(error, element) { if (error == MyCustomError) { // put my error at the top of the fo
errorPlacement: function(error, element) {
if (error == MyCustomError) {
// put my error at the top of the form
} else {
// put my error next to the element
}
我看不出那个“错误”对象到底是什么(尝试用firebug向下钻取,但信息量不大)
突出显示选项更难,因为我甚至没有要使用的“error”参数。error是jQuery Validate添加的整个错误标签HTML元素,即:
<label class="error">Error message here</label>
这仅在您使用单一语言时有效。知道如何获取规则类型吗?jQuery Validate在errorPlacement方法中默认不提供规则类型。但是您有元素,所以您可以这样做:
element.data('rule')
并直接在HTML中的元素上分配data rule=“required”
。这样,您就可以在需要放置错误消息时使用它。如果有帮助,请告诉我!谢谢你回到我身边,@Smilyan。这听起来是一条有效的道路。在我的特定用例中,我最终使用控制器注入的jQuery validator数据属性创建了隐藏输入,因此在客户端,我只是添加了keyup事件来修改隐藏输入的值+触发器验证。我个人已经围绕整个jQuery validate创建了一个包装类。这样我就可以在任何表单上设置。validate form
类开始验证,然后对于我希望在输入上添加类的每个方法,例如。使用数据属性data min length=“20”
验证最小长度
。然后,您可以在errorPlacement方法中使用这些类,并知道它们是用于此目的的(您也可以有多个验证方法)。这样,我根本不需要重复代码,只需将类用于任何新表单。
errorPlacement: function(error, element) {
if (error.text() == "Do not do this") {
error.insertBefore("SELECT FIRST ELEMENT IN THE FORM HERE USING STANDARD JQUERY SELECTORS");
} else {
error.insertAfter(element);
}