6

jqueryバリデーターを使用しています。

フォーム内の要素のグループにカスタムルールを適用しました。これらの入力には、他の(標準の)ルールが関連付けられている場合もあります。要素がカスタムルールに失敗した場合はエラーメッセージを1つの場所に配置する必要がありますが、要素が標準ルールに失敗した場合は別の場所に配置する必要があります。

私は次のようなものが必要です-

errorPlacement: function(error, element) {
    if (error == MyCustomError) {
        // put my error at the top of the form
    } else {
        // put my error next to the element
    }

その「エラー」オブジェクトが実際に何であるかがわかりません(firebugでドリルダウンしようとしましたが、あまり有益ではありませんでした)。

使用する'error'パラメータすら持っていないため、ハイライトオプションはさらに難しくなります。

4

1 に答える 1

9

errorは、jQuery Validateによって追加されるエラーラベルのHTML要素全体です。つまり、次のようになります。

<label class="error">Error message here</label>

したがって、メッセージが「これを行わないでください」である場合にメッセージを別の場所に配置する場合は、次のことができます。

errorPlacement: function(error, element) {
if (error.text() == "Do not do this") {
    error.insertBefore("SELECT FIRST ELEMENT IN THE FORM HERE USING STANDARD JQUERY SELECTORS");
} else {
    error.insertAfter(element);
}
于 2012-11-01T15:59:10.920 に答える