如何在IE浏览器上修复jquery日历?

时间:2011-11-17 06:57:44

标签: jquery

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

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

1 个答案:

答案 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');
})