在网页中,我有一个搜索字段。我添加了一个“清除”按钮,以便用户可以清除搜索字段并重新开始。为方便起见,我将焦点放在搜索字段的文本框中,光标确实出现在框中。然而,软键盘似乎没有出现在使用默认浏览器的Android设备上。在iOS和Opera Mobile中,它可以像我期望的那样工作。
我可以调用其他方法,这会导致键盘在Android浏览器上显示,以便用户可以立即开始输入吗?
function clear_search() {
if($('#searchinput').val()) {
$('#searchinput').val('');
}
$('#searchinput').focus();
}
答案 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();
}