jba*_*bey 5 javascript jquery jquery-ui jquery-ui-datepicker
此问题类似于检查datepicker是否已打开,但它与属于其上具有多个datepicker控件的页面有关.
当页面上有多个日期选择器时,jQuery UI似乎只创建一个在所有日期选择器之间共享的日期选择器小部件.
我试图通过datepicker UI或其他方式找到一种方法来找出小部件打开的日期选择器.不幸的是,尝试过的真实测试如下:
$('#someDatepicker').datepicker('widget').is(':visible');
Run Code Online (Sandbox Code Playgroud)
无论窗口小部件打开哪个日期选择器,都返回true,只要它在某处可见即可.
在浏览datepicker的源代码后,我在第718行找到了一些相关的代码:
inst = $.datepicker._getInst(input);
if ($.datepicker._curInst && $.datepicker._curInst !== inst) {
...
}
Run Code Online (Sandbox Code Playgroud)
使用这个代码,我在这些内部对象中挖了一点,然后掀起了一个小提琴.看起来它$.datepicker._curInst.id会为您提供datepicker小部件打开的文本框的ID.
使用风险由您自己承担,因为该对象是内部的和未记录的,并且可以在库的未来版本中更改/移动/删除.