此问题与Check if datepicker is open类似,不同之处在于它与一个页面上有多个日期选择器控件。
当页面上有多个日期选择器时,jQuery UI似乎只创建一个在所有日期选择器之间共享的日期选择器小部件。
我试图通过datepicker UI或其他方式找到一种方法来找出小部件打开的日期选择器。不幸的是,尝试过的真实测试如:
$('#someDatepicker').datepicker('widget').is(':visible');
无论窗口小部件打开哪个日期选择器,都返回true,只要它在某处可见即可。
答案 0 :(得分:5)
在浏览source code for datepicker后,我在第718行找到了一些相关代码:
inst = $.datepicker._getInst(input);
if ($.datepicker._curInst && $.datepicker._curInst !== inst) {
...
}
使用这段代码,我对这些内部对象进行了更多挖掘,然后掀起了fiddle。看起来$.datepicker._curInst.id
将为您提供datepicker小部件打开的文本框的ID。
使用风险由您自己承担,因为该对象是内部的,没有文档,可以在库的未来版本中更改/移动/删除。