首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以通过javascript (不带phonegap )触发Android软键盘打开吗?

可以通过javascript (不带phonegap )触发Android软键盘打开吗?
EN

Stack Overflow用户
提问于 2013-03-17 13:14:12
回答 3查看 41K关注 0票数 15

我的移动web应用程序中有一些自定义的web组件,而我需要在字段上手动触发“焦点”事件,以模拟Android软键盘功能中的“下一步”功能。(使用Galaxy S3本机浏览器)。

但是,当我手动在“select”字段上触发一个焦点事件时,本地软键盘不显示。随后,我必须单击该字段才能显示它。(当然,在IOS中,它工作得很好)。

所以我想知道,如果一个‘焦点’事件没有触发软键盘打开,什么JS事件会?

我没有使用phonegap,所以我希望有一种方法可以不用它。

感谢您的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-17 13:20:37

这里有一个来自StackOverflow的链接:

Showing Android's soft keyboard when a field is .focus()'d using javascript

仅仅专注于没有事件似乎是行不通的。-你需要一个点击事件来触发它。

代码语言:javascript
复制
$(document).ready(function() {
    $('#field').click(function(e){
        $(this).focus();
    });
    $('#button').click(function(e) {
        $('#field').trigger('click');
    });
});
票数 21
EN

Stack Overflow用户

发布于 2017-05-23 23:37:46

您可以通过在输入上调用focus(),然后调用click()来完成此操作。不需要jquery。如果您的脚本是由包含元素上的onclick()触发的,请注意无休止的循环。还要确保这个脚本是由一些用户交互触发的。它不能从document.onload()或setTimeout()中工作。当元素同时发生风格变化时,它也是脆弱的。下面的脚本适用于Chrome for android 58和Safari mobile 602.1。

代码语言:javascript
复制
var target = document.getElementsByTagName("input")[0];

if (event.target != target) {
    target.focus();
    target.click();
}
票数 1
EN

Stack Overflow用户

发布于 2021-05-23 18:26:04

Vanilla JS解决方案:

代码语言:javascript
复制
let button = document.getElementById("b");
let input = document.getElementById("i");

// Keyboard opens when focusing the input from a click listener
button.addEventListener("click", () => {
  input.focus();
});

// Input field gets focus but keyboard doesn't open.
setTimeout(() => {
  input.focus();
}, 1000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15457783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档