我希望datetimepicker上的“Now”按钮在点击时关闭它。现在,用户必须单击“现在”和“完成”。
我的应用程序有很多时间戳,所以这最终会变得单调乏味。感谢。
有谁知道这是可配置还是我需要入侵jQuery插件代码(请说前者)。感谢。
答案 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。