我在ASP.Net MVC Razor UI上使用此日期和时间选择器https://trentrichardson.com/examples/timepicker/。我的用户界面有两个使用选择器的文本框。
它们工作正常。但是,我希望当用户从第一个文本框中选择一个日期和时间时,第二个文本框会自动填充第一个文本框中的所选日期,减去日期和时间设置为下午4点。
这些是我的Javascript入门,旨在使Picker可以同时使用我的两个文本框:
第一个文本框
$("#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);
});
此功能的目的是在第一个文本框中获取日期值(减去一天),然后将其分配给第二个文本框。
我的问题是,通过添加此更改功能,Picker变得非常有故障且不可靠。
例如,当用户在第一个文本框中打开选择器并选择一个日期时,该日期将不会传递到第一个文本框中。用户必须关闭选择器,再次将其打开,然后在日期上单击几下后,该日期将输入到文本框中。
尽管,当值确实进入第一个文本框时,change函数确实起作用,即,它获得了第一个文本框值,减去了一天,然后填充了第二个文本框。
但是,这是任何用户都无法接受的可用性级别。
我想知道是否有人可以发现我的代码中的任何问题,甚至可以改进以帮助我解决问题?
谢谢。