5

这个问题类似于Check if datepicker is open,只是它与具有多个 datepicker 控件的页面有关。

当页面上有多个日期选择器时,jQuery UI 似乎只创建一个在所有日期选择器之间共享的日期选择器小部件。

我正在尝试通过日期选择器 UI 或其他方式找到一种方法来找出小部件打开的日期选择器。不幸的是,经过验证的真实测试,例如:

$('#someDatepicker').datepicker('widget').is(':visible');

无论小部件打开哪个日期选择器,只要它在某处可见,都返回 true。

4

1 回答 1

6

在浏览了datepicker 的源代码后,我在第 718 行发现了一些相关代码:

inst = $.datepicker._getInst(input);
if ($.datepicker._curInst && $.datepicker._curInst !== inst) {
    ...
}

使用这段代码,我对这些内部对象进行了深入研究,并制作了一个小提琴。看起来$.datepicker._curInst.id它将为您提供 datepicker 小部件打开的文本框的 ID。

使用风险自负,因为该对象是内部的且未记录在案,并且可以在库的未来版本中更改/移动/删除。

于 2013-05-22T15:27:17.433 回答