1

我正在使用此处找到的时间输入小部件和此处找到默认jquery 表单验证库。我已经设置了我的表单验证器以将错误消息放置在表单元素之后的自定义跨度中。例如:

<input type="text" id="event_title" name="event_title" class="required" size="50" maxlength="150" />
<span class="error_ctr"></span>

除了创建小部件时看起来像这样的时间条目小部件外,这可以正常工作。

<span class="timeEntry_wrap">
   <input type="text" class="required hasTimeEntry" size="11" value="" name="start_time" id="start_time">
   </span><span class="error_ctr">
</span>

原因是时间条目小部件将输入元素包装在一个跨度中,并且 jquery 验证尝试在输入元素之后找到具有 error_ctr 类的第一个跨度。这是我用来告诉验证插件在哪里放置错误消息的代码:

$(".request_form").validate({
    errorElement: "div",
    errorPlacement: function(error, element) {          
                       error.appendTo( element.nextAll(".error_ctr:first") );
                    }
});

如何告诉 jquery 将错误消息放在正确的位置?

4

2 回答 2

0

这应该这样做:

error.appendTo( element.closest(".timeEntry_wrap").andSelf().next(".error_ctr") );

注意:在@pimvdb 的反馈后更新

于 2013-01-02T15:38:13.043 回答
0

怎么样的东西:

...
errorPlacement: function (error, element) {
    if (element.id == "start_time") {
        $("+ .error_ctr", element.parent()).html(error);
    } else {
        error.appendTo( element.nextAll(".error_ctr:first") );
    }
}
...
于 2013-01-02T15:44:16.123 回答