但是有一个棘手问题,就是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