【问题标题】:How to make date picker dialog appear when tabbing to a date field切换到日期字段时如何使日期选择器对话框出现
【发布时间】:2013-10-07 15:22:11
【问题描述】:

我编写了一个 html5 Web 应用程序,在 Android 4.0.4 上运行时,我注意到以下问题:我在一个表单上有两个连续的输入字段,一个是文本字段,另一个是日期字段。如果焦点当前在文本字段中并且显示了虚拟键盘并且在虚拟键盘上按下了“tab”按钮,则焦点将移动到日期字段,但不会显示日期字段的日期选择器对话框。此问题在标准 Android 浏览器和 Chrome 中都存在,如下所示:

使用标准的 android 浏览器,当从文本切换到日期时,键盘保持显示,即使输入的字段是日期字段并且现在应该显示日期选择器对话框。

使用 Chrome,当从文本切换到日期时,键盘会消失,但不会显示日期选择器对话框。

无论如何,这是不可接受的。当焦点通过 Tab 键移动到日期字段时,应显示日期选择器对话框(与用户触摸输入 type=date 框时显示日期选择器对话框的方式完全相同)。

毫无疑问,这是 Android 4.0.4 操作系统中的另一个错误,我意识到它充满了此类错误。我的问题是:我可以通过编程做些什么来解决这个问题,以便在日期字段被标记为使用虚拟键盘时出现日期选择器对话框?

【问题讨论】:

    标签: android jquery date


    【解决方案1】:

    尝试在您的标签代码上使用它

        $('#datepicker').datepicker('show');
    

    【讨论】:

      【解决方案2】:
      $("#element").focus(function(){
        $( ".selector" ).datepicker("show");
      }
      

      【讨论】:

        【解决方案3】:

        我假设您正在尝试使用本机日期选择器。

        如果您发现这种情况仅在您切换到日期输入时发生,而不是在您点击它们时发生,请尝试监听焦点事件,将其模糊,移除监听器,重新聚焦,然后再次添加监听器。

        这可能会使界面变得令人无法接受,但是除了指定输入类型之外,没有任何 DOM 方法可以告诉您当前的键盘状态或更改它们。

        你会发现这种不一致是目前的常态:http://mir.aculo.us/2013/08/30/handling-numerical-input-in-mobile-web-apps-or-a-sad-tale-of-two-keyboards/

        【讨论】:

        • 是的,我正在尝试使用本机日期选择器。我想要当用户点击日期字段时出现的相同选择器,如果他们使用虚拟键盘选择该字段。是的,这只会在我点击日期输入时发生,而不是在我点击日期输入时发生。
        • 如果模糊和重新聚焦输入不能解决它(或导致副作用),我不知道有任何其他方法可以触发本机选择器。您可能需要提交错误报告。
        猜你喜欢
        • 1970-01-01
        • 2018-09-28
        • 2023-03-07
        • 2015-06-23
        • 1970-01-01
        • 2014-03-23
        • 1970-01-01
        • 1970-01-01
        • 2021-08-11
        相关资源
        最近更新 更多