使用DateTime选择器自动填充文本框

时间:2019-07-03 08:52:36

标签: javascript jquery datepicker datetimepicker

我在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函数确实起作用,即,它获得了第一个文本框值,减去了一天,然后填充了第二个文本框。

但是,这是任何用户都无法接受的可用性级别。

我想知道是否有人可以发现我的代码中的任何问题,甚至可以改进以帮助我解决问题?

谢谢。

0 个答案:

没有答案