如何获取jQuery datetimepicker的“Now”按钮来关闭小部件,就像“完成”按钮一样

时间:2012-11-26 15:37:39

标签: jquery events datepicker datetimepicker

我希望datetimepicker上的“Now”按钮在点击时关闭它。现在,用户必须单击“现在”和“完成”。

我的应用程序有很多时间戳,所以这最终会变得单调乏味。感谢。

有谁知道这是可配置还是我需要入侵jQuery插件代码(请说前者)。感谢。

2 个答案:

答案 0 :(得分:1)

只需使用onSelect事件触发完成按钮(或关闭对话框)

答案 1 :(得分:0)

我最终在Trent的closeOnNowClick(版本1.6.1)中添加了_gotoToday设置并更改了jquery-ui-timepicker-addon.js

$.datepicker._gotoToday = function (id) {
    var inst = this._getInst($(id)[0]);

    // ***: added to hide dialog on Now click
    var closeOnNowClick = this._get(inst, 'closeOnNowClick');
    if (typeof(closeOnNowClick) == 'boolean' && closeOnNowClick === true) {
        this._hideDatepicker(); 
    }

    this._base_gotoToday(id);
    var tp_inst = this._get(inst, 'timepicker');
    var tzoffset = parseInt($.timepicker.timezoneOffsetNumber(tp_inst.timezone)); // ***: added parseInt here
    var now = new Date();
    now.setMinutes(now.getMinutes() + now.getTimezoneOffset() + tzoffset);
    this._setTime(inst, now);
    this._setDate(inst, now);
    tp_inst._onSelectHandler();
};

样本用法:

$('#somedate')
    .datetimepicker({'dateFormat':'yy-mm-dd',
    'timeFormat':'HH:mm',
    'timeInput': true,
    'closeOnNowClick': true
});

我还注意到,有时tzoffset作为字符串返回,而now.getMinutes() + now.getTimezoneOffset() + tzoffset会产生绝对奇怪的值。所以我添加了parseInt调用以将tzoffset转换为int。