2

JQuery検証プラグインを使用しています。

検証中のFORM要素の外にエラーを配置できるかどうか迷います。すべてのエラーラベルをDOMの下部に配置し、絶対位置に変更したいと思います。私はこのようなことを試みました:

errorPlacement: function(error, element) {
    var position = element.offset();
        error.appendTo('body');           // put the error label before end of <body>
        error.css('position', 'absolute');
        error.css('left', position.left + element.innerWidth());
        error.css('top', position.top);
        error.addClass('error-message'); // add a class to the wrapper

これが何をしたか-入力に無効なデータを入力するとエラーラベルは正常に表示されますが、有効なデータを入力した後、ラベルは削除されません。(エラーラベルはフォーム要素の子ではないため、検証プラグインは単にそれを検出しません)

なぜ私はそれが必要ですか?
これは、HTMLのレイアウトとデザインが異なる多数のクライアントサイトがあるためです。フォームが幅の狭いDIVにあり、エラーラベルがdivに収まらない場合があります。私が見る唯一の解決策は、エラーラベルをDOMの最後に配置し、絶対位置で無効なフィールドの前の正しい位置に配置することです。

プラグインをFORMの外で機能させる方法の提案はありますか?

4

1 に答える 1

1

errorLabelContainer および/または errorContainer オプションを使用して、エラー メッセージのターゲット DOM ノードを指定します。お気に入り:

$("#myform").validate({
   errorLabelContainer: "div#errors",
})

http://docs.jquery.com/Plugins/Validation/validate#toptionsのドキュメントを参照してください。errorContainer と errorLabelContainer の両方を使用するための実際の例がいくつか見つかります。

于 2011-04-29T10:34:56.383 に答える