我有几个长格式的不同字段集,每个字段集的结构都略有不同。我有一个错误消息无法显示
HTML:
<form>
<fieldset id="Initial>
<div class="section">
<h3>Do you wish to add <span>Market Depth,</span> the ability to view <span>Nasdaq Level II data</span> and <span>futures market depth?</span></h3>
<span class="row"><label><input type="checkbox" name="MKDPT" id="MKDPT">Add Market Depth</label></span>
</div>
</fieldset>
</form>
我想在span
类的行后注入错误元素“p
js:
....
errorElement: "p",
errorPlacement: function(error, element)
{
if( element.closest("#final_step").length ) {
error.appendTo( element.parent("li"));
} else if( element.closest("#EX_AGREEMENT").length ) {
element.closest('li').after(error);
} else if( element.closest("#Initial").length ) {
error.insertAfter( element.parent("div"));
} else {
error.insertAfter(element.parent("li"));
}
},
....
需要注意的是,输入#MKDPT
得到了error类
发布于 2011-03-08 05:29:32
我觉得你就差一个角色了。正在进入您的errorPlacement
函数并进入以下if
块:
/*Snip */
else if( element.closest("#Initial").length ) {
error.insertAfter( element.parent("div"));
}
问题是element.parent("div")
会产生一个空的jQuery对象,因为parent()
只查看context元素的直接父元素。
如果您将该行替换为element.parents("div")
(注意 parents
,而不是parent
),则应该没问题:
$("form").validate({
errorElement: "p",
errorPlacement: function(error, element) {
if (element.closest("#final_step").length) {
error.appendTo(element.parent("li"));
} else if (element.closest("#EX_AGREEMENT").length) {
element.closest('li').after(error);
} else if (element.closest("#Initial").length) {
error.insertAfter(element.parents("div"));
} else {
error.insertAfter(element.parent("li"));
}
}
});
在这里它正在工作(假设复选框是必需的元素):http://jsfiddle.net/uLRw9/
https://stackoverflow.com/questions/5224855
复制相似问题