专注于我们网站上的文本框时,在 iPad 上强制使用数字键盘

Posted

技术标签:

【中文标题】专注于我们网站上的文本框时,在 iPad 上强制使用数字键盘【英文标题】:Force numpad on iPad when focusing on textbox in our website 【发布时间】:2012-07-09 05:10:20 【问题描述】:

您好,我们有一个 html5 网站,可通过 iPad 访问(类似于 kiosk 应用程序)。网站提示用户输入他们的 PIN 码。我想要的是当用户关注 PIN 文本框时强制 iPad 显示数字键盘。它会被非常老的人使用,默认情况下要切换到 iPad 键盘中的小键盘,您必须单击“123”按钮。老年人不会知道的。

我可以使用类似的东西

<input type="number" />

【问题讨论】:

【参考方案1】:

您可以在number 中设置文本字段的类型,它将显示标准的 1-9 拨号盘式键盘。

例子:

<input type="number" />

来源: http://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariHTMLRef/Articles/InputTypes.html

【讨论】:

【参考方案2】:

您可以使用 HTML5 的新文本框类型(数字)。当浏览器不需要它时,它默认为常规文本框。要使用它将输入类型设置为数字。例如:

<input type="number" />

另一种解决方案是使用 javascript。您可以使用 jQuery UI 的数字选择器、jStepper 等插件,或者只需添加以下代码来限制普通文本框。

$(document).ready(function() 
    $(".text_field").keydown(function(event) 
        if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
         // Allow: Ctrl+A
        (event.keyCode == 65 && event.ctrlKey === true) || 
         // Allow: home, end, left, right
        (event.keyCode >= 35 && event.keyCode <= 39)) 
             // let it happen, don't do anything
             return;
    
    else 
        // Ensure that it is a number and stop the keypress
        if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) 
            event.preventDefault(); 
           
    
);

);

来源:How to allow only numeric (0-9) in HTML inputbox using jQuery?

【讨论】:

如果我使用 jquery,它会在 iPad 上强制使用数字键盘吗? jQuery 不会影响数字键盘。他建议的是数字选择器的替代 UI,或限制允许的输入(当输入任何 != 数字时不做任何事情。)

以上是关于专注于我们网站上的文本框时,在 iPad 上强制使用数字键盘的主要内容,如果未能解决你的问题,请参考以下文章

动画虚拟键盘

iPad - 在专注于输入字段时放大方向变化

JavaScript jquery - 专注于页面上的第一个文本输入字段

单击文本框时会触发哪个 javascript 事件?

jQuery:如何专注于输入文本字段,使光标位于文本的末尾?

如何在 iOS 6+ 上检测用户何时强制隐藏 iPad 上的键盘