0

我在 IE8+ 中的日期选择器有问题。此代码适用于我尝试过的所有其他浏览器,但不幸的是,客户端仅使用 IE8。

发生的事情是,当您单击该字段时,它将调出日期选择器。但是,当您尝试选择日期时,每次单击日期选择器都会变大,并且从未实际选择日期。

如果我使用单击而不是焦点,它将起作用,但是您需要单击该字段然后再次退出该字段,然后它才会显示日期选择器。

我非常感谢我能得到的任何帮助。我在下面包含了我的代码。

$(document).ready(function () {
    $("body").on("focus", ".datepick", (function () {
        $(this).datepick({
            dateFormat: "yyyy-mm-dd",
            rangeSelect: true
        });
    }));
});
4

2 回答 2

1

这是因为根据jQuery 文档,焦点事件不会在 Internet Explorer 中冒泡:

焦点事件不会在 Internet Explorer 中冒泡。因此,依赖于具有焦点事件的事件委托的脚本将无法在浏览器中一致地工作。然而,从 1.4.2 版本开始,jQuery 通过在其事件委托方法 .live() 和 .delegate() 中将焦点映射到 focusin 事件来解决这个限制。

尝试绑定到focusin

$(document).ready(function () {
    $("body").on("focusin", ".datepick", (function () {
        $(this).datepicker({
            dateFormat: "yyyy-mm-dd",
            rangeSelect: true
        });
    }));
});
于 2013-09-09T21:00:39.383 回答
0

如果您使用 jquery ui datepicker,则应为您处理兼容性问题。我在 IE8 上使用它没有问题。那么你的代码就是:

$(document).ready(function(){ $('.datepick').datepicker();});
于 2013-09-09T20:15:54.807 回答