关闭在iPad上的键盘在div contenteditable

时间:2012-01-20 23:34:41

标签: javascript ipad contenteditable

有没有办法迫使iPad上的键盘关闭div''contenteditable'的模糊?

这是一个基本的jsfiddle:http://jsfiddle.net/j_tufte/7HDmN/

当用户点击按钮时,我想关闭键盘。

任何想法都非常感激。

感谢。

2 个答案:

答案 0 :(得分:8)

正如您在评论中提到的,element.blur()遗憾的是,它不适用于可编辑的div。但您可以将焦点移动到实际输入字段并立即将其删除:

$('#otherBox').on('click', function(){
    $('#orInput').focus().blur();
});

(这使用你的jsFiddle HTML代码)。

此方法存在缺点:您需要另一个输入字段(无法设置为display: hiddenvisibility: hidden,但您可以将其大小设置为0和opacity: 0) 。此外,当调用上述处理程序时,视图可以滚动到此输入字段的位置。因此,您需要将第二个输入字段放在可编辑div的下一个或后面。

您还需要处理上一个/下一个按钮未定位的输入字段:将其设置为禁用。

<input id="orInput" disabled="disabled" style="width:0; height:0; opacity:0" type="text" />

对于聚焦/模糊,您需要启用该字段:

$('#otherBox').on('click', function(){
    $('#orInput').removeAttr("disabled")
                 .focus().blur().attr("disabled", "disabled");
});

然而,这绝对是一种解决方法。我还没有找到任何其他解决方案(例如删除contenteditable属性不起作用)但我非常希望听到其他想法。

答案 1 :(得分:0)

您应该能够做到这一点 - 将事件监听器附加到按钮并使用它来blur()导致键盘弹出的输入字段(使用JavaScript获取该元素的句柄,然后调用这是blur方法。据说可以关闭iPad键盘。