1

我使用IE 67。我的项目包含 jQuery.js v. 1.9.1和 jQuery UI v. 1.9.2

我有带有 jQ​​uery 日历字段的 html 页面:

...
<input type='text' id='Birthday'>
<!-- for only test purpose-->
<input type='button' style="width: 100px;" value="Get value" id='getValue'>
...

和 javascipt 文件:

$(document).ready(function () {
     $('#Birthday').datepicker({showOn: "button"});
     $('#Birthday').datepicker("setDate", new Date(1930, 0, 1));
     $('#getValue').click(function(){
          alert($('#Birthday').datepicker("getDate"));
     });
});

然后我编辑输入文本框(没有打开日历对话框)并将日期设置为1958 年1 月 1 日,然后单击“获取值”按钮。警报框将显示 01/01/ 1930(错误日期)。我尝试在.datepicker("refresh")之后使用命令,"setDate"但结果是一样的。

如何修复 jQuery UI setDate 函数以在 IE 6...10 中工作?

4

1 回答 1

2

我通过将onSelect参数添加到 Datepicker 来解决此问题:

$('#Birthday').datepicker({
   showOn: "button",
   onSelect: function()
   {
     // this will fire change on the underlying input
     $(this).change();
   }
});

此代码在 IE 6/7/8/9 中运行良好。

于 2013-04-16T12:21:00.690 回答