我的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脚本以遵守。太大了。
答案 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();