我有一个表单的 Jquery 验证,如下所示:
$(this.initVariables.formId).validate({
errorElement: "div",
errorPlacement: function(error, element) {
error.insertBefore(element.parent());
}
}
问题是当出现错误时,表单会扭曲如下:
我想要做的是有效地调整邻居字段与错误字段相同的行,如下所示:
div的HTML代码是:
<div class="relatedField>
<div id="wwgrp_addForm_summaryData_firstName" class="wwgrp" style="float: left; padding-right: 6px;">
<div id="wwlbl_addForm_summaryData_firstName" class="wwlbl">
<label class="label" for="addForm_summaryData_lastName"> FIRST NAME </label>
</div>
<div id="wwctrl_addForm_summaryData_firstName" class="wwctrl">
<input id="addForm_summaryData_firstName" class="storedPaymentInput_size4 alphabet" type="text" value="" name="summaryData.firstName">
</div>
</div>
<div id="wwgrp_addForm_summaryData_lastName" class="wwgrp" style="float: left; padding-right: 6px;">
<div id="wwlbl_addForm_summaryData_lastName" class="wwlbl">
<label class="label" for="addForm_summaryData_lastName"> LAST NAME </label>
</div>
<div id="wwctrl_addForm_summaryData_lastName" class="wwctrl">
<input id="addForm_summaryData_lastName" class="storedPaymentInput_size4 alphabet" type="text" value="" name="summaryData.lastName">
</div>
</div>
</div>
我如何在不更改表单实现的情况下使用 jquery 做到这一点。除此之外,我还有很多领域。请帮忙。谢谢你。
我的解决方案是
errorPlacement: function(error, element) {
error.insertBefore(element.parent());
element.parent().parent().siblings().each( function () {
var child = $(this).children("div.wwctrl");
$("<div class='SPACE'> </div>").insertBefore(child);
});
}
但正如您所看到的,它并不干净,并且在正确验证后,div 空间不会被删除。
关于如何更好地做到这一点的任何想法。
谢谢你。