1

jQuery Validate プラグインを使用してフォームの日付を検証しています。入力要素が必要に応じて日付として検証されるようにルールを設定しました。発火しているように見える唯一のルールは、必要なもの(テキスト、数字など)を入れることができ、検証に合格するためです。入力フィールドが空白の場合のみ、エラーが表示されます。

これが私のスクリプトです:

        $(function() {
            $('#form1').validate({
                rules: {
                    entryDate: {
                        required: true,
                        date: true
                    }
                },
                messages: {
                    entryDate:{
                        required: "A Date is required",
                        date: "Please enter a valid date"
                    }
                }
            });
        });

これは script タグ内にあります。

ここに私のテストフォームがあります:

    <form action="" method="POST" id="form1">
            <input id="entryDate" name="entryDate" class="date" type="text" />
            <input type="submit" name="submit" id="submit" />
        </form>

誰かが私を正しい方向に向けることができますか? 非日付が受け入れられるのはなぜですか?

ファイルにスクリプト (jQuery と Validate) を含めましたが、どちらも正常に読み込まれています。

4

1 に答える 1

1

引用OP:「なぜ日付以外が受け入れられるのですか?」

OPコメントの引用:「テスト入力として、「abc」と「123」の両方を試しました。これらのエントリは両方とも検証に合格したようです。コメントに基づくと、これは日付検証の予想される正常な動作ですか?」

投稿したとおりのコードは、期待どおりに機能しています。ご覧のとおり、検証に合格abc123ないでください...

http://jsfiddle.net/zsCM3/

また、オプション内でclass="date"すでに宣言している場合は、インラインを使用する必要はありません。これは問題とは関係ありませんが、デモはどちらの場合も同じように機能しています...date: truerules

http://jsfiddle.net/TWEXJ/


編集:

Chrome(24.0.1312.52)で、のエントリ123が実際に検証に合格していることを確認しました。jQuery1.8.3と1.9.0の両方でjsFiddleを試しました。

于 2013-01-29T04:21:08.200 に答える