jquery.validate错误放置

时间:2011-10-31 16:52:53

标签: jquery

我的CSS知识有点受限。

当右div

发生错误时,想要在左div中突出显示标签
messages: { 
    userID: ""

}, 
errorElement: "span",     
    errorPlacement: function(error, element) {         
    element.siblings("label").append(error);     
    },     
    highlight: function(element) {         
    $(element).parent().children("div.left label").addClass("error");    
    },     
    unhighlight: function(element) {         
    $(element).parent().children("div.left label").addClass("error");     
    } 


 <div class="left">
 <label for="userID">Username:</label> <br />
 </div>
<div class="right">    
<input  type="text" name="userID" id="userID" onkeyup="nospaces(this)" maxlength="15" onBlur="checkUID(this)" onKeyPress="hideWarning()">
</div>

目前“没有”发生,没有错误,没有突出显示。我不确定如何修改errorPlacement脚本以遵守。太大了。

2 个答案:

答案 0 :(得分:0)

更改

$(element).siblings("label").addClass("error");

$(element).parent().children("div.left label[for='password']").addClass("error");

这将在左侧div中选择标签。对.removeClass()执行相同操作。最后,如果您希望规则通常适用于所有字段,那么使用选择器时您也可能不那么具体,只需使用div.left label而不是div.left label[for='password']

答案 1 :(得分:0)

如果您希望使用错误类突出显示所有标签,请使用setDefaults()函数:

if ( jQuery.validator ) {
    jQuery.validator.setDefaults({
        /* Place error labels below invalid fields */
        errorPlacement: function(error, element){
            $('label[for=' + element.attr('id') + ']').addClass("error");
        }
    });
}

$('#commentForm').validate();

http://jsfiddle.net/iknowkungfoo/dvyqN/1/