2

私はビジネスWebサイトのバックエンドデータベースUIを構築しており、いくつかの日付フィールドを含むいくつかのフォームがあります。それらにjQueryUIdatepicker(dateFormat:'dd / mm / yyyy')を使用していますが、入力フィールドに日付を入力することもできるので、入力を検証したいと思います(日付ピッカーフィールドを検証していますが、プラグインの導入は避けたいと思います)。

私はChromeのロケール設定の問題を回避するための調査を行っており、それは解決したと思いますが、他の投稿では言及されていない別の問題もあります。

私のクライアントは、この形式の日付を検証しないChromeでこれにアクセスする可能性が高いため、validateプラグインに付属するadditional-methods.jsファイルのdateITAを使用しています。

function validate_newjob() {
$('#newjob').validate({
        rules: {
            DueDate: {
                required: true,
                dateITA: true 
            }
        },
        messages: {
            DueDate: {
                required: "* Required",
                dateITA: "Date format dd/mm/yyyy"
            }
        },
        errorClass: "formerror",
        errorElement: "span",
        errorPlacement: function(error, element) {
            $(element).next().after(error);
        }
    });
}

これは正常に機能します。エラーが発生した場合、日付は「日付形式dd / mm/yyyy」というメッセージを使用して検証されます。

例:2012年8月8日の入力を開始し、入力すると「日付形式dd / mm / yyyy」というエラーメッセージが表示され、日付の入力が完了すると、フィールドが正常に検証されます。

しかし、何か奇妙なことが起こっています。2012年12月18日のような日付を入力し始めると、組み込みの日付:trueの検証方法が開始され、デフォルトのエラー「有効な日付を入力してください」が発行されます。(18日目の値が検証スクリプトに合格しないため)

dateITA追加メソッドを使用する場合、デフォルトのdateメソッドがフィールドを検証してフォールスネガティブを与えるのを防ぐにはどうすればよいですか?

4

2 に答える 2

7

私自身の質問に答えました...

日付メソッドを自動的にトリガーするように見えるフィールドに(私のcssのためだけに)class="date"が割り当てられました。

于 2012-10-21T07:58:03.700 に答える
0
rules: {
            DueDate: {
                required: true,
                date:false,
                dateITA: true 
            }
        },
于 2017-05-30T13:37:42.053 に答える