1

我使用IE 6和。 我的项目包含jQuery.js v。1.9.1和jQuery UI v。1.9.2jQuery Datepicker setDate在IE 6中不工作,7

我有一个jQuery的日历字段的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")); 
    }); 
}); 

然后我编辑输入文本框(不打开日历对话框),并设置日期为01/01/并点击“获取价值”按钮。警报框将显示01/01/(错误日期)。 我尝试在"setDate"之后使用.datepicker("refresh")命令,但结果相同。

如何解决在IE 6 ... 10中工作的jQuery UI setDate函数?

+0

你有问题,可能没有开发者在这里仍然使用IE 6/7:D任何为什么不使用任何现代浏览器的原因?即使在IE8兼容性视图这工作正常。 –

+0

项目要求是我们必须使用IE 6,7及更高版本。项目经理拒绝停止支持旧版本的库:-( – PaulP

+2

)当项目需求意味着开发人员花费更多时间在IE6中工作时,我会喜欢它,而不是真正使用IE6的真实用户花费的时间。呃。我的猜测是它是抛出某种JS错误,但是IE6/7没有报告它。可惜IE6/7没有像样的开发工具,但是如果你可以在后来的IE版本中使用IE7兼容模式获得相同的效果,那么你可以使用控制台来观察错误并看看发生了什么(如果它不发生在compat模式下,那么你需要找到另一种方法来调试IE6/7 ......祝你好运!) – Spudley

回答

2

我通过添加onSelect参数日期选择固定的这个问题:

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

这段代码在IE 6/7/8/9工作正常。