Я отвечу ужасным, нарисованным рукой комиком. Второе изображение является причиной того, что result
является undefined
в вашем примере кода.
Вы можете посмотреть, используя jquery globalize или добавить в свой скрипт следующее (предполагая, что формат даты культуры сервера равен «dd / MM / yyy»)
$.validator.addMethod('date', function (value, element) {
if (this.optional(element)) {
return true;
}
var valid = true;
try {
$.datepicker.parseDate('dd/mm/yy', value);
}
catch (err) {
valid = false;
}
return valid;
});
$('#dt1').datepicker({ dateFormat: 'dd/mm/yy' });
и используйте @Html.ValidationMessageFor(m => m.JobStartDate)
Вам нужно будет создать пользовательский валидатор. Вам нужно изменить свое свойство, чтобы вместо этого ввести строковое значение
public string JobStartDate {get; set; }
. Затем вам нужно создать свой собственный валидатор, подобный этому
public class CheckDateAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext) {
// Validate your Date here
}
}
. После этого вы просто украсить ваше свойство как таковое -
[CheckDate]
public string JobStartDate {get; set;}
Вот хороший учебник по пользовательским валидаторам
Здесь MVC View Model:
public DateTime? date { get; set; }
Это для скрипта:
$('.DatePickers').datetimepicker({
timepicker: false,
format: 'd-M-Y',
scrollInput: false,
closeOnDateSelect: true
});
событие нажатия клавиши для выбора даты и времени
$(".DatePickers").keypress(function (event) { event.preventDefault(); });