Текстовое поле начинается со значения 1/1/0001, которое, как я полагаю, является начальной датой по умолчанию для новой даты и времени. Проблема заключается в том, что после выбора даты в меню средства выбора даты значение элемента HTML никогда не изменяется, и 1 января 0001 года публикуется в контроллере после отправки формы. Текст в текстовом поле изменяется, но при использовании инструментов разработчика браузера значение по-прежнему равно 1/1/0001.
HTML
<div class="row col-12 formdatepicker">
<input asp-for="StartDate" type="text" class="form-control" id="startdatepicker" />
<span style="margin-left: 8px; margin-right: 8px; padding-top: 5px;">to</span>
<input asp-for="EndDate" type="text" class="form-control" id="enddatepicker" />
</div>
JS
$(document).ready(function () {
$("#startdatepicker").datepicker({
onSelect: function () {
alert($('#startdatepicker').val());
}
});
$("#enddatepicker").datepicker();
var data = $('form').serialize();
var dataType = 'application/x-www-form-urlencoded; charset=utf-8';
$(function () {
$('#submit').on('click', function (evt) {
console.log('Submitting form...');
console.log(data);
evt.preventDefault();
//Ajax form post
$.ajax({
type: 'POST',
data: data,
contentType: dataType,
url: '@Url.Action("Daily","Reports")',
success: function (data) {
if (data.success) {
alert("Data Success");
} else {
console.log(data);
//Toggle the error modal and display error messages
$('#errorsModal').modal('toggle');
//Add <br> tags when there is a linebreak in the string. This will add the line breaks into the HTML.
$('#errorsModal .modal-body p').html(data.message.replace(/(?:\r\n|\r|\n)/g, '<br>'));
}
}
});
});
});
});
Инициализации .datepicker()
работают правильно, так как при выборе текстового поля появляются меню выбора даты. Предупреждение onSelect никогда не появляется, хотя при изменении значения.