jquery.validate错误放置
我的CSS知识有点有限 当右div中出现错误时,是否要突出显示左div中的标签jquery.validate错误放置,jquery,Jquery,我的CSS知识有点有限 当右div中出现错误时,是否要突出显示左div中的标签 messages: { userID: "" }, errorElement: "span", errorPlacement: function(error, element) { element.siblings("label").append(error); }, highlight: function(element)
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>
消息:{
用户ID:“
},
错误元素:“span”,
errorPlacement:函数(错误,元素){
元素。同级(“标签”)。追加(错误);
},
突出显示:函数(元素){
$(元素).parent().children(“div.left标签”).addClass(“错误”);
},
取消高亮显示:函数(元素){
$(元素).parent().children(“div.left标签”).addClass(“错误”);
}
用户名:
目前“没有”发生,没有错误,没有突出显示。我不确定如何修改errorPlacement脚本以符合要求。Thx非常适合mch。变化
$(element).siblings("label").addClass("error");
到
这将在标签位于左分区时选择该标签。对
.removeClass()
执行相同操作。最后,如果希望将规则普遍应用于所有字段,也可以不太具体地使用选择器,只需使用div.left label
而不是div.left label[for='password']
。如果希望使用错误类突出显示所有标签,请使用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();
完美。非常感谢,没问题。另外,请确保关闭您的
标签。当我编辑您的问题时,我注意到它在
标记之前没有关闭。如果我的答案解决了问题,请将其标记为已回答。:)费尔班克,你能再看看这个吗?抱歉,我以为我已经在中添加了左div,但是我正在查看早期版本。我会编辑上面的代码,我显然不习惯这个论坛。。。。我没有看到你的评论,这会有用的。非常感谢。
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();