2012-04-26 18 views
4

我正在使用jQuery验证器。JQuery验证器 - 规则特定的错误位置

我有一个自定义规则应用于我的表单中的一组元素。这些输入也可能有其他(标准)规则。如果元素失败我的自定义规则,则需要将错误消息放在一个位置,但如果元素失败了标准规则,则需要放置另一个位置。

我需要这样的东西 -

errorPlacement: function(error, element) { 
    if (error == MyCustomError) { 
     // put my error at the top of the form 
    } else { 
     // put my error next to the element 
    } 

我看不到什么“错误”的对象确实是(试图向下钻取与萤火虫,但它不是非常丰富)。

突出显示选项更加困难,因为我甚至没有使用'error'参数。

回答

9

错误是由jQuery验证添加的整个错误标签HTML元素,即:

<label class="error">Error message here</label> 

所以,如果你想以不同的方式放置消息,如果消息是“不要这样做”,你可以:

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); 
}