任何遇到与我相同问题的人,其中,即使用户已经通过IE选择了日期,JQuery日历也会继续弹出。修复此问题的解决方案是什么?因为在其他浏览器中,例如FF,Chrome,Safari,jquery日历工作。 这是我在所有日期输入字段中使用的简单代码
$(function(){
$('#datepicker').datepicker({changeYear: true,changeMonth: true,yearRange:'1940:2011',defaultDate:+7});
})
答案 0 :(得分:0)
jQuery datepicker在IE中为DOM元素添加了一个新属性。如果您尝试从现有元素动态复制添加新DOM元素,则datepicker将无法在IE中工作,因为新添加的DOM元素引用旧的jQuery属性。解决此问题的一种方法是删除属性,然后在元素上实例化datepicker类。请参阅以下代码以获取修复。
//newDiv is the new added dom element with innerHTML
jQuery("#newDiv").find(".datePicker").each(function() {
//removing jquery added attribute as this is causing the dynamically
// added DOM elem referring old DOM element from it is copied.
if (jQuery.browser.msie) {
var jqaddedattr;
jQuery(this.attributes).each(function() {
if (this.name.search(/jQuery/) != -1) {
jqaddedattr = this;
}
});
if (jqaddedattr) {
jQuery(this).removeAttr(jqaddedattr.name);
}
}
jQuery(this).datepicker({yearRange: '-100:+10', changeFirstDay:false}).val("").trigger('change');
})