JQueryUI datepicker не устанавливает / не публикует значение текстового поля после выбора даты - PullRequest
0 голосов
/ 27 февраля 2020

Текстовое поле начинается со значения 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 никогда не появляется, хотя при изменении значения.

...