0

フォームにエラーがない場合、エラーを保持するラッパーを非表示にしたいと考えています。私のコードでこれを適用する方法を誰かが知っていますか。

実際にフォームが正しく入力されたとき。「これらのことを満たしてください」を見たことがあります。エラーがない場合にそれらを非表示にする方法を誰かが知っていますか。

$("#contactForm").validate({
    errorLabelContainer: $("#contactAlert ul"),
    errorElement: 'li',
    rules: {

    },
    messages: {
      },
    highlight: function (error, element) {
        $("#contactAlert").removeClass('hide');
    },
    errorPlacement: function (error, element) {
        this.labelContainer.append(error);
    }
});
// call valid to see errors
var valid = $("#contactForm").valid();

console.log(valid);
4

3 に答える 3

1

あなたが投稿したように、あなたのコードはすでにエラーメッセージとコンテナを表示および非表示にしています。ここで達成しようとしていることをよりよく説明する必要があります。


コードでhighlightandを使用している理由を説明したことはありません。errorPlacementOP だけに基づいて、これら 2 つのコールバック関数をオーバーライドする理由はありません。

デフォルトでは、プラグインはすでにあなたが望むことをしています...エラーは自動的に表示および非表示になります。デモでは、エラーがなくなったときに表示されないことを示すために、ラッパーに色を付けました。

作業デモ (コンテナーを使用): http://jsfiddle.net/eVax5/

jQuery :

$(document).ready(function () {

    $("#contactForm").validate({
        errorLabelContainer: $("#contactAlert ul"),
        errorElement: 'li',
        rules: {
            // rules
        }
    });

});

HTML :

<form id="contactForm">
    ...
</form>

<div id="contactAlert">
    <ul></ul>
</div>

そして「デフォルト」の例: http://jsfiddle.net/Y6HTz/

jQuery :

$(document).ready(function () {

    $("#contactForm").validate({
        // other options,
        rules: {
            // rules
        }
    });

});

HTML :

<form id="contactForm">
    ...
</form>
于 2013-02-23T14:49:49.300 に答える
0

論理的には、フォームを再送信するときは、フォームをチェックする前にエラー メッセージを非表示にする必要があります。

于 2013-02-23T13:02:26.750 に答える
-1

値を入力している間、検証をチェックする必要があります。つまり、検証関数をローカル変数に格納し、再度チェックします。動作することを確認します。

于 2013-02-23T13:49:52.233 に答える