当字段为.focus()'d使用javascript时显示Android的软键盘

在一个网页我有一个search字段。 我添加了“清除”button,以便用户可以清除search字段并重新开始。 为了方便起见,我将焦点放在search框的文本框中,光标确实出现在框中。 然而,软键盘似乎并没有显示在使用默认浏览器的Android设备上。 在iOS和Opera Mobile中,它可以像我期望的那样工作。

有一个额外的方法,我可以调用这将导致键盘显示在Android的浏览器,所以用户可以开始input马上?

function clear_search() { if($('#searchinput').val()) { $('#searchinput').val(''); } $('#searchinput').focus(); } 

Solutions Collecting From Web of "当字段为.focus()'d使用javascript时显示Android的软键盘"

我不是100%确定,但我认为它不能完成(至less在android 2.2之前)从JavaScript。 如果你使用phonegap,你可以在这里使用: https : //github.com/phonegap/phonegap/wiki/How-to-show-and-hide-soft-keyboard-in-Android

这个问题类似于如何通过javascript或jquery在Android浏览器上集中input字段

无论如何,因为你已经有一个点击事件来处理,这应该排除你:

 $(document).ready(function() { $('#field').click(function(e){ $(this).focus(); }); $('#button').click(function(e) { $('#field').trigger('click'); }); }) 

当然你需要触发这个点击事件。 只是集中在没有事件似乎没有工作。 以上的作品为我在Android 4上的标准浏览器,并显示软键盘。

click()自己是不够的 。 你需要focus()然后click() 。 如果你的脚本是由一个包含元素上的onclick()触发,那么请注意无尽的循环。 下面的脚本适用于我的Chrome浏览器,适用于android 58和Safari mobile 602.1。

 var target = document.getElementsByTagName("input")[0]; if (event.target != target) { target.focus(); target.click(); }