Mobile Safari - 使用Javascript关闭键盘
问题描述:
我试图通过JS解雇键盘来响应按钮按下,但我没有任何运气。Mobile Safari - 使用Javascript关闭键盘
设置:
- 我有一个接受和取消按钮,配之以
textarea
。 - 单击取消按钮后,我的视图对象将调用
textAreaElement.blur()
。 - 然后它将删除接受和取消按钮。
预期:
- 字段失去焦点(视觉上和其他)。
- 键盘被解雇。
实际:
- 字段出现失去焦点(在视觉上,不显示光标),和编程。
- 键盘仍然呈现。
我已经尝试了通常的Google,但他们似乎都认为在关注元素上调用blur
应该足够了。一位用户甚至建议致电$('input').blur()
以确保所有字段都模糊不清,但这似乎没有什么区别。
答
...我刚想清楚为什么会发生这种情况。
我提到我正在删除此字段的接受和取消按钮。具体如下发生:
- 致电
textAreaElement.blur()
。 - 动画按钮消失。
- 完成动画后,
buttons.remove()
。
当取消按钮收到点击时,它获得焦点(键盘保持活动状态)。当动画完成回调中随后取消取消按钮时,将焦点应用于前一个可调焦元素,即textarea
。
因此,我不得不这样做的效果:
textarea.blur()#已经没有焦点。 buttons.remove()#删除按钮,将它们的焦点应用回textarea。
的解决方案是替代:
- 动画的按钮消失。
- 等待动画完成,
buttons.remove()
。 - 致电
textAreaElement.blur()
。