8

jQuery datepicker を使用しているときに、このエラーに直面しています。

jQuery:

$( ".datepicker" ).datepicker({ 
    defaultDate: +7,
    autoSize: true,
    dateFormat: 'dd.mm.yy',
}); 

モデル:

[DisplayName("Date")]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
[Required(ErrorMessage = "Date is required")]
public DateTime Date { get; set; }

したがって、日付形式を のようにしたいのですが、日付dd.MM.yyyyピッカーを使用して日付を選択すると、フィールドに正しく追加されます。しかし、同じ秒で、検証エラーが表示されますThe field 'Date' must be a date

形式で日付を手動で書き込んでテストしたところ、dd/MM/yy機能しているように見えます。そのため、バリデーターはそのフォーマットを探しますが、どこを変更すればよいかわかりません。

4

3 に答える 3

2

クロムを使用していますか?jquery.validate.js の問題である可能性があります。このJquery Datepicker Chromeをご覧ください。

于 2013-06-17T14:11:55.933 に答える
0

DisplayFormat は、検証で受け入れられる形式ではありません。ピリオドを含むものが必要な場合は、正規表現を使用してこれを検証することをお勧めします。

[DisplayName("Date")]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
[Required(ErrorMessage = "Date is required")]
[RegularExpression(@"PUT REGEX HERE", ErrorMessage = "Invalid Date")] // below is a link
public DateTime Date { get; set; }

ここでいくつかの一般的な表現を示します。

また、c# から js に移行するときは、形式を統一することをお勧めします。

あなたはJSにあります:

dateFormat: 'dd.mm.yy'

あなたが望むかもしれません:

dateFormat: 'dd.mm.yyyy'

モデルの DisplayFormat 属性を dd.MM.yy に変更することもできます。ちょっとした考え!

于 2013-05-25T00:09:30.030 に答える