【问题标题】:jquery datepicker reopening in IE9jquery datepicker在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

感谢您的帮助。

最好的问候,

戴夫

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:

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

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

    【讨论】:

    • 如果没有 ajax 回调,日期选择器根本不起作用。它必须在ajax之后反弹。我错了吗?
    • 如果我从 AJAX 调用中删除 .datepicker 属性,我仍然会得到重复的弹出行为,并且 datepicker 在 AJAX 调用后不再工作(单击文本框时没有任何反应)。
    猜你喜欢
    • 1970-01-01
    • 2017-11-22
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多