4***@qq.com
4***@qq.com
  • 发布:2017-06-17 14:14
  • 更新:2017-06-17 23:05
  • 阅读:3913

有没有办法自动聚焦到一个输入框?

分类:HTML5+

请问技术人员能帮忙看看嘛?我研究了很多办法了,实在没办法解决。
我的目的就是希望页面加载之后,能自动的聚焦到txtSearch(type为number)并自动的弹出键盘。
我通过搜索,先搜索的方法是
var Context = plus.android.importClass("android.content.Context");
var InputMethodManager = plus.android.importClass("android.view.inputmethod.InputMethodManager");
var main = plus.android.runtimeMainActivity();
var imm = main.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
这个方法可以弹出键盘,但是速度比较慢,而且无法自动的切换到数字键盘。

然后我通过分析im_chat.html的页面,发现他们点击按钮的时候使用
setTimeout(function(){
document.getElementById("txtSearch").focus();
},150);
来实现聚焦的,我测试也是可以的。但是如果在load或者模拟触发事件中都无法启动小键盘。但是点击按钮,却又是可以的,请问该怎么做呢?

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="css/mui.css"/>
</head>
<body>
<input type="number" id="txtSearch" />
<button type="button" class="mui-btn mui-btn-blue" id="btSubmit">按钮</button>
<script src="js/mui.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
mui.init();
function autoFocus(){
setTimeout(function(){
document.getElementById("txtSearch").focus();
},150);
}
//通过点击按钮,可以聚焦到文输入框,并自动的弹出数字数字框
document.getElementById("btSubmit").addEventListener("tap", function(){
autoFocus();
});
if (mui.os.plus) {
mui.plusReady(function() {
// //以下方法可以弹出键盘,但是不是默认数字键盘,找了很多办法都没有办法转入到数字键盘
// var Context = plus.android.importClass("android.content.Context");
// var InputMethodManager = plus.android.importClass("android.view.inputmethod.InputMethodManager");
// var main = plus.android.runtimeMainActivity();
// var imm = main.getSystemService(Context.INPUT_METHOD_SERVICE);
// imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);

            var webview = plus.android.currentWebview();  
            plus.android.importClass(webview);  
            webview.requestFocus();  

            //这个触发没有效果  
            autoFocus();  
        });  
    }     

</script>  

</body>
</html>

2017-06-17 14:14 负责人:无 分享
已邀请:
雪之梦技术驿站

雪之梦技术驿站 - 你在互联网的路上匆匆而来,雪之梦技术驿站助你满载而去

mark

Salazar

Salazar

应该有聚焦的属性,看看官方文档

4***@qq.com

4***@qq.com (作者)

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
BaseInputConnection ic = new BaseInputConnection(this, true);
outAttrs.inputType = InputType.TYPE_CLASS_NUMBER; // Tells the keyboard to show the number pad
return ic;
}

这个问题实际上一直存在的,应该是继承WebView,重载onCreateInputConnection方法来实现支持Number的。否则无解。

该问题目前已经被锁定, 无法添加新回复