我有一个包含许多输入元素的表单。有些是带有 jQuery UI 日期选择器的日期字段:
$("#someElement").mask("9?9/99/9999").datepicker({showOn: 'button', buttonText:'Click here to show calendar', duration: 'fast', buttonImageOnly: true, buttonImage: /images/calicon.gif' });
然后我有一个键命令绑定(bind)到这个函数:
function openCalendar() {
var selection = document.activeElement;
// { Need to test here if datepicker has already been initialized
$(selection).datepicker("show");
// }
}
这对于已经有日期选择器的元素非常有用。但是,任何其他字段都会引发 javascript 错误。我想知道测试日期选择器是否已经在该字段上初始化的最佳方法。
最佳答案
哇,真不敢相信我错过了这个。 ui.datepicker.js的第108行:
/* Class name added to elements to indicate already configured with a date picker. */
markerClassName: 'hasDatepicker',
所以我只需要测试 hasClass('hasDatepicker')
。这似乎是最直接的方法。此外,此语句检查日期选择器当前是否打开(对于任何感兴趣的人):
if ($("#ui-datepicker-div").is(":visible") && $("#ui-datepicker-div").html() != "") {
// datepicker is open. you need the second condition because it starts off as visible but empty
}
关于javascript - 测试元素是否已经有 jQuery datepicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2579389/