私はビジネス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メソッドがフィールドを検証してフォールスネガティブを与えるのを防ぐにはどうすればよいですか?