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

时间:2011-05-16 16:29:53

标签: javascript jquery android html5 android-softkeyboard

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

我可以调用其他方法,这会导致键盘在Android浏览器上显示,以便用户可以立即开始输入吗?

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

3 个答案:

答案 0 :(得分: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上的标准浏览器,并显示软键盘。

答案 1 :(得分:1)

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

答案 2 :(得分: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();
}