我有几个不同的长形式字段集,每个字段集的结构略有不同。我有一个我无法显示错误消息
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>
我想在p
类行
span
”
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
正在获取错误类
答案 0 :(得分:3)
我认为你只是一个角色。您正在输入errorPlacement
功能并输入以下if
块:
/*Snip */
else if( element.closest("#Initial").length ) {
error.insertAfter( element.parent("div"));
}
问题是element.parent("div")
产生一个空的jQuery对象,因为parent()
只查看了context元素的 immediate 父级。
如果您将该行替换为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/