Я использую этот инструмент выбора даты и времени 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);
});
Цель этой функции - получить значение даты в первом текстовом поле минус один день, а затем присвоить его второму текстовому полю.
Моя проблема заключается в том, что при добавленииэта функция изменения, пикер стал очень глючным и не надежным.
Например, когда пользователь открывает Средство выбора в первом текстовом поле и выбирает дату, дата не будет передана в первое текстовое поле.Пользователь должен закрыть средство выбора, открыть его снова, а затем, после нескольких дополнительных нажатий на дату, дата будет отображаться в текстовом поле.
Хотя, когда значение действительно входит в первое текстовое поле, функция изменения работает, то есть получает первое значение текстового поля, минус один день и заполняет второе текстовое поле.
Однако этот уровень удобства использования неприемлем для любого пользователя.
Мне было интересно, кто-нибудь может обнаружить какие-либо проблемы в моем коде или даже улучшить, чтобы помочь мне решить проблему?
Спасибо.