我正在使用发现here的时间条目小部件和发现here的默认jquery表单验证库。我已经设置了表单验证器,以将错误消息放置在form元素之后的自定义范围中。例如:

<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将错误消息放置在正确的位置?

最佳答案

应该这样做:

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


注意:@pimvdb的反馈后更新

关于jquery - jQuery树遍历以将错误消息放置在正确的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14123543/

10-12 00:16
查看更多