0

私は、bassistance.de から jQuery 検証プラグインを実装し、検証したい各フォームの下にルールを手動で定義して使用しています。スクリプトの初期化が完了した後、必要に応じて定義したフィールドを変更したい (境界線の色を指定するなど) が、一般的な「ロードされた」コールバック、イベント、または拡張可能性を見つけることができないようです。

$('#form').validate(..)初期化が完了するたびにスクリプトを実行する方法はありますか?

私が今それを解決している方法は次のとおりです。

$(document).ready(function() {
    $('#myForm').validate({
        rules: {
            txtCode: { required: true, maxlength: 12 },
            txtName: { required: true, maxlength: 50 },
        }
    });
    $('#myForm').highlightRequiredFields();
});

..highlightRequiredFields()は、必要なテキスト ボックスを変更するために作成した単純な jQuery プラグインです。その行をすべてのフォーム検証に複製することにあまり熱心ではありません。

4

3 に答える 3

1

単純に CSS で変更しないのはなぜですか? 私にはたくさんのルールがあり、 requiredのクラスを持つもので自動的に実行されるいくつかの JS 行さえあります。それらが有効/エラーになると、(私が望む) 他のことが起こります。

そうしないと、おそらく$.fn.validate()プラグイン自体の内部で変更を加える必要があります。

于 2012-08-31T15:19:24.137 に答える
1

検証プラグインの init メソッドを妨害して、highlightRequiredFields プラグインを実行します。

このプラグインが利用可能かどうかを確認することを忘れないでください。他の場所で強調表示せずに使用しても検証が壊れることはありません。

于 2012-08-31T15:23:51.783 に答える
0

みんな、ありがとう。Zachary の応答により、思ったよりもはるかに簡単であることがわかりました。私はこのオーバーロードを追加することになりました:

(function($) {
    $.fn.extend({
        validateAndMarkRequired: function(options) {
            var validator = this.validate(options);
            this.markRequiredFields();
            return validator;
        }
    });
})(jQuery);
于 2012-09-03T08:29:33.253 に答える