更改日期时更改时间选择器中的时间

时间:2018-07-16 12:43:11

标签: javascript jquery datepicker

我有以下jQuery日期和时间选择器:

$('.timepicker').timepicker({
    'minTime': '05:15',
    'maxTime': '21:15',
    'timeFormat': 'H:i',
    'step': 15,
    'forceRoundTime': true,
});

$('.datepicker').datetimepicker({
    format: 'YYYY-MM-DD',
});

无论何时更改日期,我都想更改时间。我尝试了以下不同方法:

$('.datepicker').change(function() {
    $('.timepicker').text('09:15')
})
$('.datepicker').change(function() {
    $('.timepicker').setTime('09:15')
})
$('.timepicker').val('09:15')

它仍然不起作用。

1 个答案:

答案 0 :(得分:1)

您似乎为插件使用了错误的事件/方法。普通的HTML输入可以很好地与change.val()一起使用,但是插件通常会在其之上附加其自身的功能。您应该始终使用所使用的插件公开的API,而不是尝试直接获取底层功能。

对于.datetimepicker(),您正在使用this library吗?如果是这样,那么您正在寻找的事件是dp.change

$('.datepicker').on('dp.change', function (e) {
    // respond to the change event here
});

对于the time picker you're using,方法是.setTime()。从他们提供的链接中的文档中:

$('#setTimeExample').timepicker('setTime', new Date());

链接的文档并不能很容易地确定您是否也可以使用字符串来设置时间,但是您可以尝试:

$('.timepicker').timepicker('setTime', '09:15');

您还可以查找该插件的其他文档和示例。

但是,基本上,当您使用复杂的插件将功能覆盖在普通HTML元素之上时,请使用这些插件提供的API。您很可能会更改基础HTML元素的值,但是如果您绕过其API,则该插件可能不会注意到该更改。