移动Safari - 使用Javascript关闭键盘

时间:2017-01-27 18:33:36

标签: javascript ios mobile-safari

我正试图通过JS关闭键盘按下按钮,但我没有运气。

设定:

  1. 我有一个textarea,其上有接受和取消按钮。
  2. 点击取消按钮后,我的视图对象将调用textAreaElement.blur()
  3. 然后会删除接受和取消按钮。
  4. 预期:

    • 场失去焦点(视觉上和其他方面)。
    • 键盘已关闭。

    实际值:

    • 字段似乎失去焦点(视觉上,没有显示光标),并且以编程方式。
    • 仍然显示键盘。

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

1 个答案:

答案 0 :(得分:0)

......我只知道为什么会这样。

我提到我正在删除此字段的“接受”和“取消”按钮。具体来说,发生了以下情况:

  1. 致电textAreaElement.blur()
  2. 按钮动画消失。
  3. 完成动画后,buttons.remove()
  4. 当“取消”按钮收到点击时,它获得了焦点(键盘保持活动状态)。随后在动画完成回调中删除了“取消”按钮时,焦点将应用于上一个可聚焦元素,即textarea

    所以我有了这样做的效果:

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

    解决方案是:

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