【问题标题】:Force a numeric keyboard but allow punctuation: HTML5, mobile Safari强制使用数字键盘但允许标点符号:HTML5、移动 Safari
【发布时间】:2012-09-24 22:51:35
【问题描述】:

我正在构建一个 HTML 页面,以便在移动 Safari [和其他平台] 中查看。该页面允许用户指定几个开始和结束时间。他们必须至少输入两次,并且可能更多,这取决于他们的情况。

我希望用户能够使用数字 SHIFT 模式键盘将时间作为数字和标点符号输入,即用户将看到如下字段:

当他们专注于该字段时,他们将获得数字 SHIFT 键盘:

不起作用:

<input type="time">(和相关的日期时间类型)不是一个选项。从 HCI 的角度来看,滚轮是不可接受的,特别是对于重复输入。

<input type="number"> 一开始就做对了。它在数字移位模式下触发键盘,即默认情况下数字和标点部分是可见的。但是当您退出该字段时,移动 Safari 会删除标点符号(即冒号)。我尝试使用novalidate 关闭表单中的验证,但没有奏效。

<input type="text" pattern="[0-9]*"> 触发电话键盘无法输入冒号。

我可能只需要在 PATTERN 属性中使用不同的正则表达式,但我尝试过的每个正则表达式都会触发普通的字母键盘,并且用户必须按一个键才能进入数字 SHIFT 键盘。

谁能告诉我如何在不触发用户输入的严格验证规则的情况下强制键盘进入数字 SHIFT 显示?

【问题讨论】:

    标签: html mobile-safari


    【解决方案1】:

    看看 jQuery Mobile DateBox。 here。您可能想在这里重新考虑文本输入。也许你想和一个选择器一起去。 Sencha Touch 还有一个 DatePicker。我编写了一个实现时间选择器对象的扩展。如果你需要的话,我会把它扔到 GitHub 上。

    【讨论】:

    • 这很有帮助,谢谢。拆分成几个不同的字段(每个字段只有数字)可能比必须争论键盘类型更好的方法,因为似乎不可能只告诉设备“默认为此键盘”。然而,从 HCI / Fitts 的角度来看,日期选择器通常仍然很糟糕。 :-/
    猜你喜欢
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多