Mobile Safari - 使用Javascript关闭键盘

问题描述:

我试图通过JS解雇键盘来响应按钮按下,但我没有任何运气。Mobile Safari - 使用Javascript关闭键盘

设置:

  1. 我有一个接受和取消按钮,配之以textarea
  2. 单击取消按钮后,我的视图对象将调用textAreaElement.blur()
  3. 然后它将删除接受和取消按钮。

预期:

  • 字段失去焦点(视觉上和其他)。
  • 键盘被解雇。

实际:

  • 字段出现失去焦点(在视觉上,不显示光标),和编程。
  • 键盘仍然呈现。

我已经尝试了通常的Google,但他们似乎都认为在关注元素上调用blur应该足够了。一位用户甚至建议致电$('input').blur()以确保所有字段都模糊不清,但这似乎没有什么区别。

...我刚想清楚为什么会发生这种情况。

我提到我正在删除此字段的接受和取消按钮。具体如下发生:

  1. 致电textAreaElement.blur()
  2. 动画按钮消失。
  3. 完成动画后,buttons.remove()

当取消按钮收到点击时,它获得焦点(键盘保持活动状态)。当动画完成回调中随后取消取消按钮时,将焦点应用于前一个可调焦元素,即textarea

因此,我不得不这样做的效果:

textarea.blur()#已经没有焦点。 buttons.remove()#删除按钮,将它们的焦点应用回textarea。

的解决方案是替代:

  1. 动画的按钮消失。
  2. 等待动画完成,buttons.remove()
  3. 致电textAreaElement.blur()