MVC5 asp.netプロジェクトでフォーマットの日付dd/MMM/YYYYを使用する際に問題があります。ほとんどの場合、yyyy/mm/ddという形式の日付しか受け入れられないように見えるため、Chromeについては、HTML5フォーマットの日付dd/MMM/YYYY
ブラウザ間で動作を正規化するには、jquery datetimepickerコンポーネントを使用しています。
多くのことを試しましたが、Chromeはまだ日付が有効ではないと言っています。後で入力を日付の代わりにテキストとして定義する。
また、特定のコンポーネント(data-val = "false")の検証を無効にしても、Chromeは日付を無効としてマークすることを主張しています。
モデル:
public class order
{
[Key]
public int orderID { get; set; }
[Required]
public string comments { get; set; }
[Required]
[DisplayFormat(DataFormatString = "{0:dd/MMM/yyyy}", ApplyFormatInEditMode = false)]
[Display(Name = "Date of Shipping")]
public DateTime date { get; set; }
}
表示日付入力:
<div class="form-group">
@Html.LabelFor(model => model.date, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.date, new { htmlAttributes = new { @class = "form-control datetimepicker" } })
@Html.ValidationMessageFor(model => model.date, "", new { @class = "text-danger" })
</div>
</div>
輸入:
<script src="https://code.jquery.com/jquery-3.2.1.js"/script>
<link rel="stylesheet" type="text/css" href="~/Content/jquery.datetimepicker.min.css" />
<script src="~/Scripts/jquery.datetimepicker.full.min.js"></script>
Javascriptを:
<script type="text/javascript">
jQuery.datetimepicker.setLocale('es');
jQuery('#date').datetimepicker({
format: 'd/M/Y',
});
</script>
'[データ型(DataType.Date)]'と '[displayFormatに(DataFormatString = "{0:DD/MMM/YYYY}"、ApplyFormatInEditMode = true)] 'jquery datepickerを使用している場合は意味がありません(そして' new {@type = "text"} 'を取り除くことができます –
クライアント側のエラーが発生した場合、' jquery.validate'は'MM/dd/yyyy'形式です。あなたの書式で日付を受け入れるようにバリデータを再設定する必要があります。 –
'@type =" text "'を削除します - この属性は無関係です。また、datetimepickerのフォーマットは間違っているようです。これは '$( '#date')とdatetimepicker({format:" DD/MMM/YYYY "})'です。そして、クライアント側の検証を以下のように設定します: '$。validator.methods.date = function(value、element){return this.optional(element)|| $ .datetimepicker.parseDate( 'DD/MMM/YYYY'、value); } ' –