【问题标题】:Mobile Safari - Dismiss Keyboard with Javascript移动 Safari - 使用 Javascript 关闭键盘
【发布时间】:2017-01-27 18:33:35
【问题描述】:
我试图通过 JS 关闭键盘以响应按钮按下,但我没有任何运气。
设置:
- 我有一个
textarea,上面绑定了接受和取消按钮。
- 点击取消按钮后,我的视图对象将调用
textAreaElement.blur()。
- 然后它将移除接受和取消按钮。
预期:
实际:
- 字段似乎失去焦点(视觉上没有显示光标),并且以编程方式。
- 键盘仍然存在。
我已经尝试过通常的 Google,但他们似乎都认为在焦点元素上调用 blur 就足够了。一位用户甚至建议致电$('input').blur() 以确保所有字段都被模糊,但这似乎并没有什么不同。
【问题讨论】:
标签:
javascript
ios
mobile-safari
【解决方案1】:
...我刚刚弄清楚为什么会这样。
我提到我正在删除该字段的“接受”和“取消”按钮。具体发生了以下情况:
- 致电
textAreaElement.blur()。
- 动画按钮消失。
- 动画完成后,
buttons.remove()。
当取消按钮收到点击时,它获得焦点(键盘保持活动状态)。当取消按钮随后在动画完成回调中被移除时,焦点被应用到前一个可聚焦元素,即textarea。
所以我做了这样的效果:
textarea.blur() # 已经没有焦点了。
button.remove() # 移除按钮,将焦点重新应用到文本区域。
解决方案是:
- 动画按钮消失。
- 等待动画完成,
buttons.remove()。
- 致电
textAreaElement.blur()。