How to tell which datepicker the widget is open for(如何判断微件打开的是哪个日期选择器)

本文介绍了如何判断微件打开的是哪个日期选择器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此问题类似于Check if datepicker is open,不同之处在于它与具有多个日期选择器控件的页面有关。

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

我正在尝试找到一种方法,通过DatePicker UI或其他方式,找出小部件针对哪个DatePicker打开。不幸的是,经过验证的测试,例如:

$('#someDatepicker').datepicker('widget').is(':visible');
无论小部件为哪个DatePicker打开,只要它在某处可见,都返回TRUE。

推荐答案

在source code for datepicker中爬行后,我在第718行附近找到了一些相关代码:

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

使用此代码,我更深入地研究了这些内部对象,并生成了一个fiddle。看起来$.datepicker._curInst.id将为您提供DatePicker小部件打开的文本框的ID。

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

这篇关于如何判断微件打开的是哪个日期选择器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!