当字段使用javascript进行.focused时显示Android软键盘

问题描述 投票:10回答:3

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

是否有一种我可以调用的方法可以让键盘显示在Android的浏览器上,以便用户可以立即开始输入?

function clear_search() {
    if($('#searchinput').val()) {
        $('#searchinput').val('');
    }
    $('#searchinput').focus();
}
javascript jquery android html5 android-softkeyboard
3个回答
1
投票

我不是100%肯定,但我认为它不能从javascript完成(至少直到android 2.2)。如果您使用的是phonegap,可以在此处使用:https://github.com/phonegap/phonegap/wiki/How-to-show-and-hide-soft-keyboard-in-Android


5
投票

这个问题与How to focus an input field on Android browser through javascript or jquery相似

无论如何,因为你已经有一个单击事件可以使用,这应该排除你:

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

    $('#button').click(function(e) {
        $('#field').trigger('click');
    });
})     

当然,你需要一个触发此事件的点击事件。只是在没有事件的情况下聚焦似乎不起作用。以上适用于我在android 4上的标准浏览器,并显示软键盘。


0
投票

click()本身是不够的。你需要focus()然后click()。如果您的脚本由包含元素上的onclick()触发,请注意无限循环。下面的脚本适用于Chrome for Android 58和Safari mobile 602.1。

var target = document.getElementsByTagName("input")[0];

if (event.target != target) {
    target.focus();
    target.click();
}
© www.soinside.com 2019 - 2024. All rights reserved.