如何有选择地随时触发datepicker

时间:2014-01-12 09:23:09

标签: javascript jquery events datepicker anytime

我在某些输入元素上使用Anytime datepicker。

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

AnyTime.picker(element_id)

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

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

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

我找不到任何可行的方法,只能修改Anytime源只能有条件地触发......

我已尝试使用Anytime_noPicker()删除datepicker,但它不起作用,如果它确实有效,它将是一个非常不优雅的解决方案。

2 个答案:

答案 0 :(得分:1)

每次都调用AnyTime.picker(),你可以将它放在window.matchMedia()测试的else条件中。例如:

if ( window.matchMedia(...) )
   // use input type="date" here
else
   AnyTime.picker('element-id');

答案 1 :(得分:1)

另一个可能是更好的解决方案的答案是测试浏览器是否实际支持type =“date”,并且只调用AnyTime.picker()或$()。AnyTime_picker()如果不支持。例如:

if ( document.getElementById('my-date').type != 'date' )
    AnyTime.picker('my-date',{...});