2011-11-17 48 views
1

遇到与我的问题相同的任何人,其中,即使用户已经通过IE选择了一个日期,JQuery日历仍会弹出。有什么解决方案来解决这个问题?..因为在其他浏览器,如FF,Chrome,Safari,jQuery的日历工作。 这里是简单的代码,我在我所有的日期输入字段使用如何解决IE浏览器上的jQuery日历?

$(function(){ 
    $('#datepicker').datepicker({changeYear: true,changeMonth: true,yearRange:'1940:2011',defaultDate:+7}); 
}) 
+0

还没有经历过这样的事情。你可以在这里发布你的代码来检查吗? – andrew

+0

请发布您的代码 – Ghostman

+0

我发布了我的简单代码 – sasori

回答

0

jQuery的日期选择器增加了一个新的属性,在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'); 
}) 
+0

任何其他解决方案(s)?..它没有工作:( – sasori