Mobile Safari-使用Javascript关闭键盘

Mobile Safari-使用Javascript关闭键盘,javascript,ios,mobile-safari,Javascript,Ios,Mobile Safari,我试图通过JS关闭键盘,以响应按下按钮,但我没有任何运气 设置: 我有一个textarea,上面有接受和取消按钮 单击“取消”按钮后,我的视图对象将调用textAreaElement.blur() 然后,它将删除“接受”和“取消”按钮 预期: 字段失去焦点(视觉或其他) 键盘被解雇了 实际: 字段似乎失去焦点(从视觉上看,不显示光标),并且以编程方式显示 键盘仍然存在 我已经试过了常用的Google,但他们似乎都认为对聚焦元素调用blur就足够了。一位用户甚至建议调用$('input')

我试图通过JS关闭键盘,以响应按下按钮,但我没有任何运气

设置:

  • 我有一个
    textarea
    ,上面有接受和取消按钮
  • 单击“取消”按钮后,我的视图对象将调用
    textAreaElement.blur()
  • 然后,它将删除“接受”和“取消”按钮
  • 预期:

    • 字段失去焦点(视觉或其他)
    • 键盘被解雇了
    实际:

    • 字段似乎失去焦点(从视觉上看,不显示光标),并且以编程方式显示
    • 键盘仍然存在

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

    。。。我刚弄明白为什么会发生这种事

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

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

    因此,我有这样做的效果:

    textarea.blur()#已没有焦点。 按钮。移除()#移除按钮,将其焦点应用回文本区域

    解决办法是:

  • 设置按钮消失的动画
  • 等待动画完成,
    按钮。删除()
  • 调用
    textAreaElement.blur()