2

次のコードがあります

$("#Form").validate({

    errorPlacement: function(error, element) {
        element.addClass('errorField');
        element.after(error);
    },
    rules: {
        ...
    }
});

errorPlacement関数は、記述されたルールに失敗したときに要素に css を設定し、検証class errorFieldの前に毎回このクラスを削除したいと考えていerrorFieldます。

element.removeClass('errorField');

私の質問は、検証が行われる前に発生する jquery.validate のイベントはありますか?

したがって、それelementがこのクラスをホストしている場合errorField、上記のコードはこの要素からクラスを削除し、フィールドを再検証し、フィールドがルールに再び失敗した場合にこのクラスを再度適用する可能性があります。

これは、検証後に発生するイベントでも実行される可能性があるため、要素がルールに合格した場合はクラスを削除しerrorFieldます。

注: errorFieldエラーについてユーザーに通知するためにフィールドを強調表示する css クラスです。

4

3 に答える 3

0

この投稿から長い時間が経ちましたが、これは私が通常使用するソリューションです。

次のように、新しい検証メソッドを作成したり、組み込みの検証メソッドを編集したりできます。

https://jqueryvalidation.org/jQuery.validator.addMethod/

$.validator.addMethod("mymethod", function(){
    doSomethingBeforeCheck();
    return ruleValidator();
});

これにより、検証の前に任意のアクションを実行するために、ルールがチェックされる前に好きなことを行うことができます。

于 2016-09-02T12:22:31.413 に答える