我正在使用Trent Richardson为jQuery UI的datepicker开发的优秀的Datetimepicker插件。
然而,我希望解决的一个问题是,当您选择一个字段,然后在其中导航时,输入字段中的日期值会发生变化。因此,如果您选择了一个日期,然后决定导航以查看其他选项,则它会在此过程中更改日期。
例如,您可以查看示例页面右侧的here (使用下拉列表而不是滑块)。
以下是我的初始化代码:
$('input[name=valueTextField]').addClass('datepicker');
$( ".datepicker" ).datetimepicker({
dateFormat: 'm/d/yy ',
timeText: 'Test',
controlType: 'select',
timeFormat: "h:mm TT",
ampm: true,
onChangeMonthYear: function(year, month, dpInst, tpInst) {
alert(dpInst);
alert(dpInst.dateDefined);
if(!tpInst.timeDefined && !dpInst.dateDefined) {
this.value = '';
dpInst.dateDefined = null;
}
if (dpInst.dateDefined) {
}
},
onSelect: function(date, dpInst) {
dpInst.dateDefined = true;
}
});
$("#ui-datepicker-div").addClass("meta_datepicker");
$('input[name=valueTextField]').attr('readonly', 'readonly');您可以看到一个JSFiddle here。
发布于 2012-11-28 01:16:03
您可以在每次keyup和select之后保存以前的值,并在changeMonthYear或close期间恢复它
$( ".datepicker" ).datetimepicker({
...
onSelect: function() {
$(this).data("oldValue",this.value);
},
onChangeMonthYear: function(year, month, dpInst, tpInst) {
this.value = $(this).data("oldValue");
},
onClose: function() {
this.value = $(this).data("oldValue");
}
}).keyup(function() {
$(this).data("oldValue",this.value);
});工作example。不是很漂亮,但能把工作做好。一些边缘情况:
controlType,但完整的实现不在本答案的讨论范围内。更新: @streetlight指出了另一个问题--在使用“现在”按钮后,一切似乎都变得“有问题”(有时使用旧值,有时使用新值)-我得出的结论是,这在用户代码中做的工作太多了。假设实际上在导航日历时不自动更改值对可用性更好,我建议与jQuery团队一起打开RFE来提出这个选项。
https://stackoverflow.com/questions/13589221
复制相似问题