HTML5 input焦点键盘弹出问题

html-css012

HTML5 input焦点键盘弹出问题,第1张

最近项目有个需求,我们使用的是PDA装置,它有扫描枪,可以让扫描出来的内容填写到html的input控件中。

但是有一个棘手问题,就是input控件只要获取焦点,就会弹出键盘。

项目的需求,希望刚开始时,只是将焦点聚集在input控件上,可以通过扫描枪输入,然后点击input控件时,还能弹出键盘进行修改。

这个问题解决核心就是 input控件聚焦的时候,不弹出键盘,当点击的时候,才弹出键盘。

尝试了很多方法,最后发现了readOnly属性一个诡异作用。当调用 input控件的focus()方法时,如果readOnly属性为true,那么不会弹出键盘,但是焦点已经在 input控件上了。这个时候,再将readOnly属性设置为false,那么这个时候键盘不会弹出,但是可以扫描枪输入了。

示例:

显示搜索按钮需要满足3个条件:

1.input在form标签中

2.form标签设置了action属性值

3.input设置type为search

示例如下:

<form action="#">

    <input type="search" />

</form>

这种情况下点击搜索按钮会跳转到action对应的地址进行搜索

如果我们需要js来处理搜索逻辑,可以设置form不提交,并且监听输入框的keydown事件

示例如下:

<form action="#" onsubmit="return false">

    <input type="search" id="t_search" />

</form>

<script type="text/javascript">

$("#txt_search").keydown(function (e) {

    if (e.keyCode == 13) {

        //搜索处理

    }

})

</script>

还有一个前往按钮,也类似,把type换成text就可以了,所以form很重要,如果我们不放form,就是“换行”按钮了。

end