1

JQuery Validationを希望の場所に到達させるのに問題があります。私のエラーは矢印付きのサイドボックスに表示されます。これは、単一の「ラッパー」で実現できます。

$('#loginform').validate({
    errorPlacement: function(label, element) {
        label.addClass('arrow');
        label.insertAfter(element);
    },
    wrapper: 'span'
});

問題は、残念ながら入力フィールドの周りにボックスがあるため、そのボックスの境界線の上にエラーを配置する必要があることです。これを行うには、2 つのラッパーが必要です。したがって、私のエラーは次のようになります。

<span class='errorContainer'>
    <span class='arrow'>
        <span class='error'>This is the actual error message.</span>
    </span>
</span>

現在のコードでは、これだけが得られます。

<span class='arrow'>
    <span class='error'>This is the actual error message.</span>
</span>
4

2 に答える 2

4

使用できます

errorPlacement: function(label, element) {
    $('<span class="errorContainer"><span class="arrow"></span></span>').insertAfter(element).find('.arrow').append(label)
}

デモ:フィドル

于 2013-02-23T12:02:08.660 に答える
2

受け入れられた答えには何の問題もありませんが、同じ目的の DOM 構造を達成するためのより効率的な方法を示したかったのです。

空のコンテナを挿入し、内側の要素を見つけてからエラーを追加する代わりに...以下は冗長ではなく、より直接的です。目的のコンテナでラベルをラップするだけです。

errorPlacement: function (error, element) {
    error.insertAfter(element)
    .wrap('<span class="errorContainer"><span class="arrow"></span></span>');
},

これには、プラグインのデフォルト errorPlacementのコールバックを使用できるという利点があります...

error.insertAfter(element)

...そして、jQuery.wrap()メソッドを最後までチェーンするだけです...

.wrap('<span class="errorContainer"><span class="arrow"></span></span>')

実際のデモ: http://jsfiddle.net/2ZaLB/

于 2013-02-23T16:37:51.283 に答える