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

次のようなものはどうですか:

...
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 に答える
0

これはそれを行う必要があります:

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

注:@pimvdbのフィードバック後に更新

于 2013-01-02T15:38:13.043 に答える