Автоматическое заполнение текстового поля с помощью выбора даты и времени - PullRequest
0 голосов
/ 03 июля 2019

Я использую этот инструмент выбора даты и времени https://trentrichardson.com/examples/timepicker/ в пользовательском интерфейсе ASP.Net MVC Razor.Мой пользовательский интерфейс имеет два текстовых поля, в которых используется средство выбора.

Они отлично работают.Однако мне бы хотелось, чтобы, когда пользователь выбирал дату и время из первого текстового поля, во второе текстовое поле автоматически заполнялась выбранная дата из первого текстового поля, минус один день и время, установленное на 16:00.

Это мои инициации Javascript, чтобы Пикер работал с обоими моими текстовыми полями:

Первое текстовое поле

$("#CourseStartDate").datetimepicker(
{
    dateFormat: 'dd/mm/yy',
    timeFormat: 'HH:mm:ss',
    stepMinute: 15,
    hourMin: 7,
    hourMax: 21,
    showSecond: false
});

Второе текстовое поле

$("#CourseClosingDate").datetimepicker(
{
    dateFormat: 'dd/mm/yy',
    timeFormat: 'HH:mm:ss',
    stepMinute: 15,
    hourMin: 7,
    hourMax: 21,
    showSecond: false
});

Я подумал, что лучший способ автоматического заполнения второго текстового поля - создать функцию Change, которая будет срабатывать при изменении значения первого текстового поля, поэтому я написал этот скрипт:

$('#CourseStartDate').change(function () {
    var date2 = $('#CourseStartDate').datepicker('getDate');
    date2.setDate(date2.getDate() - 1);
    $("#CourseClosingDate").datetimepicker('setDate', date2);
});

Цель этой функции - получить значение даты в первом текстовом поле минус один день, а затем присвоить его второму текстовому полю.

Моя проблема заключается в том, что при добавленииэта функция изменения, пикер стал очень глючным и не надежным.

Например, когда пользователь открывает Средство выбора в первом текстовом поле и выбирает дату, дата не будет передана в первое текстовое поле.Пользователь должен закрыть средство выбора, открыть его снова, а затем, после нескольких дополнительных нажатий на дату, дата будет отображаться в текстовом поле.

Хотя, когда значение действительно входит в первое текстовое поле, функция изменения работает, то есть получает первое значение текстового поля, минус один день и заполняет второе текстовое поле.

Однако этот уровень удобства использования неприемлем для любого пользователя.

Мне было интересно, кто-нибудь может обнаружить какие-либо проблемы в моем коде или даже улучшить, чтобы помочь мне решить проблему?

Спасибо.

...