你能否使用JavaScript显示/隐藏iPad Safari键盘?

5

是否可以通过代码控制iPad Safari中键盘的显示和隐藏?

我有两个表单字段: 1. 文本框(例如姓名) 2. 选择列表/下拉菜单(例如州)

我的问题是,当用户从姓名移动焦点到州时,键盘仍然存在。为什么会这样,如何在焦点移动到下拉菜单时隐藏键盘?

谢谢。


你的问题不应该询问如何显示键盘,当你只是想要隐藏它时。 - Michael
2个回答

2

我刚遇到了一个非常类似的问题,不确定我的解决方案是否适用于您。

在我的情况下,我在表单内部有一个文本输入框。在提交时,我使用e.preventDefault()来阻止页面导航。我认为这也会导致停止隐藏键盘的默认操作。

为了解决这个问题,在表单提交时,我添加了一个显式的input.blur()。这似乎足以让Safari移除键盘。

希望这可以帮助您!


我遇到了相反的问题,即当仍有文本元素时键盘会消失。我已经使用了preventDefault,但键盘仍然会消失。 - Michael

1

我遇到了同样的问题。我的表单中,当在字段外键入时应该折叠键盘(这在iPad上不是本机行为),并且当焦点选择字段时也应该折叠键盘。对我来说唯一的解决方案是创建隐藏输入。

<input type="hidden" id="blurInput" />

以及用于处理焦点事件的JavaScript代码句柄:

$element = $(event.target);
if($element.is('select')) {
    $('#blurInput').blur();
    $element.focus();
}

如果您只想模糊输入字段,另一种解决方案可以完美地工作,但在输入和选择之间它会失败。
document.activeElement.blur();
$('input').blur();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接