在安卓系统中强制打开键盘

16

有人知道如何在安卓浏览器中强制打开键盘吗(4.0或更低版本)?我尝试了这个解决方案,但对我没有用。

在项目中,我正在尝试使文本输入正常工作,但是在提交后(由jQuery截获),它仍然聚焦,但键盘消失了

代码片段:

$('#typer').blur(function () {
    $(this).focus().click();
});

$('#typer').bind('keyup', function (e) {
    var input = $.trim($(this).val());
    // some lines of code..
    $(this).val('').focus(); // clean up
}

iOS也很有趣..但尚未测试。


你想要实现什么并不是很清楚。这个可以工作:http://jsfiddle.net/Exceeder/Z6SFH/(我创建了一个 fiddle 来跟踪你的问题),并且键盘不会消失。但是软键盘对于 #typer 的状态和样式非常挑剔。你是否希望无论用户用手指触摸什么都能让键盘停留在屏幕上? - Alex Pakka
1
问题在于提交后键盘消失了,就像你的例子一样。这发生在按下“Go”之后。有什么想法吗? - e382df99a7950919789725ceeec126
啊,这个“Go”按钮...看看这个:https://dev59.com/0mw15IYBdhLWcg3wisW- - Alex Pakka
1个回答

8

当文本输入框获得焦点时,Android会弹出软键盘。 Android上的“Go”或“Done”按钮作为表单提交,因此输入文本失去焦点并且键盘消失。 用户希望在按下“Go”,“Done”或“Enter”后键盘消失-因此Android遵循此规则。 强制在字段失去焦点时重新聚焦不会有太大作用,因为从技术上讲,您已经移动到了另一个窗口。

$('body').click(function() { $('#typer').focus(); }

可以提供一个部分解决方案,即用户只需在页面任意位置点击一次,typer 就能重新获得焦点。这会导致操作系统返回浏览器活动并聚焦输入字段。 这个代码片段是一个例子:http://jsfiddle.net/Exceeder/Z6SFH/ (在您的 Android 设备上使用http://jsfiddle.net/Exceeder/Z6SFH/embedded/result/)。
除了编写类似 PhoneGap 的包装器来控制键盘的 imeOptions 之外,我不知道还有什么解决方法可以解决这个问题。

谢谢Alex,我已经使用点击文档的方法解决了这个问题。很遗憾没有一个好的API可以解决这个问题。$(document).click(function () { $('#typer').focus(); }) - e382df99a7950919789725ceeec126
大家,让我们在Chromium错误跟踪器上发布新问题。这是唯一的实现方式。我在这里发布了我的问题:https://code.google.com/p/chromium/issues/detail?id=435871&thanks=435871&ts=1416704707 假装你没有看到我的问题,再发布一个重复的问题,这样他们就会更加意识到这个需求的重要性。 - trusktr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接