jquery datepicker在IE9中重新打开

Posted

技术标签:

【中文标题】jquery datepicker在IE9中重新打开【英文标题】:jquery datepicker reopening in IE9 【发布时间】:2012-04-05 06:13:33 【问题描述】:

在 IE9 中看到 datepicker 的一个令人讨厌的行为。 datepicer 确实有效,但在弹出日历上单击所选日期后会再次弹出。用户必须单击弹出日历以关闭它。以下是事件的顺序:

1) 用户点击日期选择器文本框

2) 日历弹出

3) 用户点击所需日期

4) 日期被插入到文本框中并且日历弹出立即再次打开。

5) 用户必须点击远离日历弹出窗口

6) 日历弹出窗口关闭

这在 Chrome 或 FF 中不会发生。在那里,一旦单击选定的日期,日历弹出窗口就会关闭并保持关闭状态,除非用户再次单击日历文本框。

这听起来像是我设置了错误的日期选择器还是这是一个错误?

日期选择器代码:

$(document).ready(function() 
    $("input:submit, button").button();
    $("#VNH").css("color", "#006600");
    $(".datepicker").datepicker( 
        dateFormat: 'yy-mm-dd'
    );
    $("#tools_dialog").css("visibility", "hidden");
);

在 ajax 之后:

$("#SNH").live('click', function() 
    var request = $.ajax(
        url: "news.php",
        type: "GET",
        success: function(html)
            $("#topcontainer").html(html);
            $( ".datepicker" ).datepicker( 
                dateFormat: 'yy-mm-dd'
            );
           
    );
);

使用 jquery-1.6.2.min.js 和 jquery-ui-1.8.15.custom.min.js

感谢您的帮助。

最好的问候,

戴夫

【问题讨论】:

【参考方案1】:

您创建了两次日期选择器(DOM 加载后和 AJAX 调用之后)。尝试从 AJAX 调用中删除 .datepicker 属性。

这一行: $( ".datepicker" ).datepicker(             dateFormat: 'yy-mm-dd'         );

【讨论】:

如果没有 ajax 回调,日期选择器根本不起作用。它必须在ajax之后反弹。我错了吗? 如果我从 AJAX 调用中删除 .datepicker 属性,我仍然会得到重复的弹出行为,并且 datepicker 在 AJAX 调用后不再工作(单击文本框时没有任何反应)。

以上是关于jquery datepicker在IE9中重新打开的主要内容,如果未能解决你的问题,请参考以下文章

如何从 DatePicker ui jquery 中删除时间

如何在对话框打开时模糊第一个表单输入

jquery ui Datepicker minDate 的重新初始化失败

jquery ui datepicker怎么设置默认日期

My97datepicker在IE9下采用‘yyyy-MM’格式时会出现11111111

利用jQuery中live为动态生成Dom添加datepicker效果