如何在 iPad HTML5 应用程序上抑制键盘弹出?

Posted

技术标签:

【中文标题】如何在 iPad HTML5 应用程序上抑制键盘弹出?【英文标题】:How can I suppress keyboard popup on an iPad HTML5 app? 【发布时间】:2010-07-23 16:45:38 【问题描述】:

我为 iPad 编写了一个 html5 应用程序。它有一个输入字段。每次用户访问此页面时,都会出现弹出式键盘。

如何在 HTML5/JS 上下文中抑制这种默认行为?

在我的应用程序中,如果您输入登录名和密码,它会显示另一个屏幕(无需重新加载页面)。但是键盘还是存在的,需要手动隐藏。

【问题讨论】:

嗯..解决方案之一是禁用它...还有其他的吗? 也许,就像我的情况一样,因为您有一个 jQuery 日期选择器分配给该字段。但是禁用该字段也会禁用日期选择器。 在我的应用程序中,如果您输入登录名和密码,它会显示另一个屏幕(无需重新加载页面)。但是键盘仍然存在...而且您必须手动隐藏它... @Rob:将 datepicker 分配给隐藏的输入或其他可视的非表单元素,并向按钮添加点击事件。使点击事件触发日期选择器显示。如有必要,在完成(不确定真实姓名)事件上添加回调以获取返回的值,以便您可以在另一个可视化 HTML 元素(此时甚至是表单元素)中显示它。 在通过 ajax 提交表单之前,您是否尝试过在表单中​​的所有输入、textarea 上调用 blur? 【参考方案1】:

我不确定我是否理解您对问题的描述,它似乎不完整。我可以尝试重新陈述一下,看看我是否理解正确?

    用户在 iPad 上打开 Safari 用户在 Safari 的地址栏中输入您的 HTML5 应用程序的地址,然后点击“开始”按钮 用户被带到您的应用程序的登录页面。他们点击用户名字段,然后弹出键盘出现。 他们输入用户名,切换到密码字段,输入密码,然后点击“开始”按钮。 您的应用通过 javascript 在屏幕上加载一些不同的内容。弹出式键盘仍然存在。

如果这是您遇到的问题,那么在加载新页面的内容之前,可能值得在您的用户名和密码字段上调用 ​​blur 函数。这可能会使键盘消失。

如果这些字段的 HTML 如下所示:

<input type="text" name="username" id="username">
<input type="password" name="password" id="password">

那么 JavaScript 将是:

document.getElementById('username').blur();
document.getElementById('password').blur();

【讨论】:

以上是关于如何在 iPad HTML5 应用程序上抑制键盘弹出?的主要内容,如果未能解决你的问题,请参考以下文章

iPad键盘分裂时调整UIPopover

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

有没有办法在 Safari(网络浏览器)上隐藏 iPad 键盘

如何在 Python 中抑制来自键盘的命令?

选择器作为弹出框内的输入视图

如何在 iPhone/iPad/iOS 上显示临时弹出消息