10

私は jQuery 検証プラグインを使用しており、以下に示すようにフォーム検証関数を定義しています。いくつかのユーザー アクションに基づいて、カスタム JS 関数を実行しています。その関数では、電子メール フィールドと電話フィールドが有効かどうかを確認したいだけです。しかし、私はそれらを検証したくありません。つまり、検証エラーを表示したくありません。値が有効かどうかを確認するだけです。

何かのようなもの

$('#email').isvalid();

Validator のelementメソッドをチェックアウトしましたが、値が有効かどうかをチェックするだけでなく、要素を検証します。つまり、プログラムでルールを実行する方法を探しています。どんな助けでも大歓迎です!

以下のフォームバリデータ関数:

var validator = $("#olForm").validate({
    rules: {
        "email": {
             required: true,
             email: true
        },
        "phone": {
             required: true,
             digits: true,
             minlength: 9,
             maxlength: 11
        }
    }
});
4

4 に答える 4

9

元の jsfiddle への対応として、次のバージョンを参照してください。

http://jsfiddle.net/33PGQ/23/

これは 3 つの方法で変更されます。最初に、単純なブール値が、両方のフィールドが有効かどうかを等しくするように設定されます (その後、警告が表示されます)。各 valid() 呼び出しはブール値を返すため、すべてのフォーム要素の有効性を簡単かつ簡単に確認できます。

次に、validate オプションは、内部コードを持たないカスタム showErrors 関数で拡張されます。この関数は、検証エラーのデフォルトの動作をオーバーライドします。そのため、フィールドの内部有効性をチェックしてフィールドの有効性を処理する一方で、実際のエラー テキストは表示されません。これにより、すべての検証ルールが有効になりますが、検証結果。

最後に、最初の質問では明示的に要求されていませんが、オプションの「onsubmit:false」設定を追加しました。これは、すべての検証ルールが正常にチェックされない限り、フォームの送信を防止する検証呼び出しのデフォルトの動作をオーバーライドします。送信を防止したい場合は削除できますが (そうすると思います)、知っておくと便利な機能だと思います。フォームの検証が失敗した場合でもフォームを送信したいという特別なケースがある場合に備えて、ここに含めました。

検証のオプション リストを確認することは間違いなく価値があります。バリデーターの動作を調整して、必要なものに正確に合わせる方法はたくさんあります。

于 2012-09-21T04:41:22.937 に答える
8

実際にフィールドをスタイリングしたり、エラーを表示したりせずにこれを行う、文書化されていないメソッドcheck()があります。

var validator = $('form').validate();
if( validator.check('#email') ){
  // this field is valid but no styling was applied
}
于 2015-11-03T09:31:25.843 に答える
3

(2015 年 9 月現在文書化されていない)と呼ばれる便利な方法.checkForm()があり、これを使用すると、これを非常に簡単に行うことができます。の呼び出しとは異なり.valid()、これは呼び出されたときにフォーム エラーを表示しません。

// Returns a boolean
$('form').validate().checkForm();
于 2015-09-25T13:14:24.283 に答える
2

.valid()メソッドを探しているようです。ウィジェットを初期化するには、フォーム全体に対してvalidate()を実行する必要があることに注意してください。

http://docs.jquery.com/Plugins/Validation/valid

于 2012-09-18T15:56:07.523 に答える