首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误放置问题jquery验证

错误放置问题jquery验证
EN

Stack Overflow用户
提问于 2011-03-08 04:27:53
回答 1查看 5.5K关注 0票数 1

我有几个长格式的不同字段集,每个字段集的结构都略有不同。我有一个错误消息无法显示

HTML:

代码语言:javascript
运行
复制
<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:

代码语言:javascript
运行
复制
....
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类

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-08 05:29:32

我觉得你就差一个角色了。正在进入您的errorPlacement函数并进入以下if块:

代码语言:javascript
运行
复制
/*Snip */
else if( element.closest("#Initial").length ) {
        error.insertAfter( element.parent("div"));
    } 

问题是element.parent("div")会产生一个空的jQuery对象,因为parent()只查看context元素的直接父元素。

如果您将该行替换为element.parents("div") (注意 parents,而不是parent),则应该没问题:

代码语言:javascript
运行
复制
$("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/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5224855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档