0

我在某些输入元素上使用Anytime日期选择器。

这是它在元素上的设置方式:

AnyTime.picker(element_id)

element_id 是一个包含元素 id 的字符串。
单击该元素时,它会弹出 Anytime datepicker 控件。

它工作正常,但如果满足某些条件,我想防止它在某些情况下触发。我似乎找不到一个体面的方法来做到这一点。

更具体地说,我想在从移动设备浏览时禁止它,并改用 HTML5 日期对话框(或者只是文本输入,如果它不可用)。我找到了一种在网站处于“移动布局”时显示 HTML5 日期对话框的方法,使用 JavaScript ( window.matchMedia()) 中的媒体查询,但我最终将 Anytime 和 HTML5 日期对话框都绑定到元素,并单击它会同时显示两者。我希望任何时候都不要出现在这种情况下......

除了将 Anytime 源修改为仅有条件地触发之外,我找不到任何可行的方法...

我已经尝试使用 Anytime_noPicker() 删除日期选择器,但它不起作用,无论如何,如果它确实有效,这将是一个非常不优雅的解决方案。

4

2 回答 2

1

而不是每次调用 AnyTime.picker(),您可以将它放在 else 条件中以进行 window.matchMedia() 测试。例如:

if ( window.matchMedia(...) )
   // use input type="date" here
else
   AnyTime.picker('element-id');
于 2014-01-12T12:28:19.057 回答
1

另一个对您来说可能是更好的解决方案的答案是测试浏览器是否实际上支持 type="date",如果不支持则仅调用 AnyTime.picker() 或 $().AnyTime_picker()。例如:

if ( document.getElementById('my-date').type != 'date' )
    AnyTime.picker('my-date',{...});
于 2014-01-12T14:33:51.747 回答