我的移动网络应用程序中有一些自定义Web组件,而我需要在字段上手动触发“焦点”事件,以模拟Android软键盘功能中的“下一步”功能。 (使用Galaxy S3本机浏览器)。
但是,当我在'select'字段上手动触发焦点事件时,本机软键盘不会显示。我必须随后点击该字段才能显示它。 (在IOS中,它当然可以正常工作)。
所以我想知道,如果'焦点'事件没有触发软键盘打开,JS事件将会是什么?
我没有使用phonegap,所以我希望没有它的方式。
感谢您的帮助!!!
答案 0 :(得分:19)
这是StackOverflow的链接:
Showing Android's soft keyboard when a field is .focus()'d using javascript
只是在没有事件的情况下进行聚焦似乎不起作用。 - 你需要一个 点击事件触发此事。
$(document).ready(function() {
$('#field').click(function(e){
$(this).focus();
});
$('#button').click(function(e) {
$('#field').trigger('click');
});
});
答案 1 :(得分:2)
您可以通过在输入上调用focus()
然后click()
来执行此操作。不需要jquery。如果您的脚本由包含元素上的onclick()触发,请注意无限循环。确保此脚本由某些用户交互触发。它不能从document.onload()或setTimeout()工作。对于元素上的同步样式更改等内容也很脆弱。下面的脚本适用于Chrome for Android 58和Safari mobile 602.1。
var target = document.getElementsByTagName("input")[0];
if (event.target != target) {
target.focus();
target.click();
}