我正在使用jquery验证来验证表单,并且在一致地设置错误位置时遇到一些麻烦。输入字段具有不同的嵌套级别,一些在div中,一些在嵌套的div中。但是对于所有错误,我希望将其置于跨度中,并在相关输入字段上方加上“预热”类。我试过最亲近的父母,似乎不行。我可以显式遍历树,但只有在元素处于同一嵌套级别时才能工作?我认为最近的应该可以工作,但它不会(我做错了什么)任何帮助表示赞赏。
$("#paymentpreferences").validate({
rules: {
minpayment: {
digits: true,
min: 5
}
},
errorPlacement: function(error, element) {
$(element).parents('span .warming :first').html(error);
},
success: function(label){
label.next().next().addClass('tick');
}
});
示例Html,请参阅'方法'选择是嵌套div,但accountno不是
<span class="warming"></span>
<div class="lab_box"><label class="lab">payment type</label></div>
<div class="input_box">
<div class="gender_box">
<select name="method" id="method" tabindex="1" class="ins required">
<option value="1" label="PayPal">PayPal</option>
</select>
</div>
<a href="#" title="tooltip_paymentmethod" class="question tooltips"></a>
<div class=" fill"></div>
</div>
<div class="wb_clear"></div>
<span class="warming"></span>
<div class="lab_box"><label class="lab">account number</label></div>
<div class="input_box">
<span>
<input type="text" name="accountno" id="accountno" value="asdasd" tabindex="2" class="ins required" size="30" />
</span>
<a href="#" title="tooltip_accountno" class="question tooltips"></a>
<div class="fill"></div>
</div>
答案 0 :(得分:3)
如果要在特定div或span中专门指定错误消息,可以在该元素的错误位置中写入类似的内容。
if ( element.is("#your_field") )
error.appendTo('#your_field_err');
此处your_field_err是您的错误div或span的ID。 and__field是该字段的id。 就像你的代码一样,你提到了复杂的结构。 请确保将这些错误放置放在最顶层,最通用的放在底部的代码中。