我对jQuery Validator插件中的errorPlacement方法有疑问: 我想在div中添加一条错误消息。
在我继续之前...是的,代码很糟糕,我正在一个不属于我的项目中工作,没有文档或任何我帮助过的东西。但我无法从零开始写所有网页。
好的,让我们继续,这是HTML代码的一小部分:
<tr>
<th height="24" scope="col">
<div align="left" class="Style69 Style72 Style75">
<span class="Style77">Name</span>
</div>
</th>
<th height="24" colspan="3" scope="col">
<div align="left">
<span class="Style69 Style72 Style75">
<input id="txtname" name="txtname" class="required"
type="text" size="30" />
</span>
</div>
</th>
</tr>
<tr>
<td height="17" colspan="4">
<div id="errorMessage"></div>
</td>
</tr>
布局是一个表,并且在此表的内部放置了所有元素(输入框和选择框)。
我的问题是,我如何将错误信息放在div“errorMessage”中?
我正在做这样的事情:
errorPlacement: function(error, element) {
error.appendTo(element.prev().next().next());
}
但它不起作用。然后,我试过这个:
errorPlacement: function(error, element) {
error.appendTo(element.prev().next().next().find("#errorMessage"));
}
没有任何反应。 “Div”和“Span”标签是DOM的一部分吗?
有任何建议吗?
答案 0 :(得分:2)
这里的问题是.prev()
没有给出任何结果,此处<input>
没有先前的兄弟:
<span class="Style69 Style72 Style75">
<input id="txtname" name="txtname" class="required"
type="text" size="30" />
</span>
这样的事情应该有效:
errorPlacement: function(error, element) {
element.closest('tr').next().find('.errorMessage').append(error);
}
这使用.closest()
前往<tr>
,获取.next()
兄弟(下一个<tr>
)然后.find()
获取class="errorMessage"
元素里面。
有了这个,请将id
更改为类,如下所示:
<div class="errorMessage"></div>