Я использую валидатор jquery datepicker
для проверки ввода текста.
У меня проблема в том, что если я нажму «Отправить», все сообщения об ошибках отобразятся правильно.
Однако при вводе средства выбора даты текст, вводимый при вводе даты, не проверяет значение даты 23/11/2020
, а проверяет значение даты 12/11/2020
.
В этом случае я думаю, что сценарий ошибочно принимает месяц за день.
Если изменить параметр dateFormat с dd/mm/yy
на mm/dd/yy
jquery datepicker
, все даты будут проверены, но формат для типа ввода будет
а не 18/11/2020
значение даты
Что здесь может происходить. Спасибо
Мой код выглядит следующим образом.
public class PersonModel
{
[Column(TypeName = "date")]
[Display(Name = "Spanish Date")]
[Required]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime? SpanishDate { get; set; }
}
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div>
@Html.ValidationSummary(true, "Date is invalid", new { @class = "text-danger" })
<table cellpadding="0" cellspacing="0">
<tr>
<td class="textarea">Spanish Date</td>
<td>
@Html.TextBoxFor(m => m.SpanishDate, "{0:dd/MM/yyyy}", new { @class = "textarea", placeholder = "Spanish Date", @readonly = "true" })
@Html.ValidationMessageFor(m => m.SpanishDate, "", new { @class = "text-danger" })
</td>
</tr>
</table>
<br />
<hr class="new3">
<div class="form-group">
<div class="col-md-offset-5 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryui")
@Styles.Render("~/Content/cssjqryUi")
<script type="text/javascript">
jQuery(function ($) {
$.datepicker.regional['es'] = {
closeText: 'Cerrar',
prevText: '<Ant',
nextText: 'Sig>',
currentText: 'Hoy',
monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
monthNamesShort: ['Ene','Feb','Mar','Abr', 'May','Jun','Jul','Ago','Sep', 'Oct','Nov','Dic'],
dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'],
dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'],
weekHeader: 'Sm',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['es']);
});
var options = $.extend({},
$.datepicker.regional["es"], {
dateFormat: "dd/mm/yy",
changeMonth: true,
changeYear: true,
yearRange: "-2:+0",
highlightWeek: true,
maxDate: 0
}
);
$("#SpanishDate").datepicker(options);
</script>
}
Решено с помощью проверки MVC DateTime - формат даты в Великобритании
спасибо