移动页面input手机键盘中的“搜索”按键

满足以下几点机即可:

input type="search"

放到form标签中
使用action属性

<form action="." >
  <input type='search' />
</form>

注意:

如果只使用input type="search",而不放到form标签中,则显示“换行”;
如果放到form中,但是使用type="text",则显示“前往”;
如果放到form中,使用input type="search",但没有action属性,Android不会有问题,但在IOS8以上的系统中,键盘上仍不会显示“搜索”,而是显示“换行”。

回车事件

如果页面中不设置“搜索”按钮来触发搜索操作,而是当点击键盘中的“搜索”时就进行搜索操作。可以监听输入框的回车事件。比如在onKeyDown事件监听中,获取事件keyCode,判断是否输入“回车”(keyCode=13),然后再进行相关的搜索操作。

点击搜索之后页面自动刷新的问题

因为这个form中只有一个输入框,所以在输入框中输入回车时,页面会自动刷新。要避免此情况,可以在添加一个隐藏的input

<form action="." >
  <input id="iptSearch" type='search' />
  <input type="text" style="display:none;"/>
</form>

输入框内的小叉X

type=“search”的输入框在获取到焦点后,默认会出现一个小叉叉,用于清空输入框中的内容,而且样式因浏览器而异。如果想要隐藏这个X,可以使用如下CSS:

input[type="search"]::-webkit-search-cancel-button{
    -webkit-appearance: none;
}

移动端 h5 界面软键盘搜索功能实现

解决方法: 对应移动端按键响应事件onkeypress(或者keyup) 按键编码为13

 document.onkeyup = function (e) {
        var code = e.charCode || e.keyCode;
        if (code == 13) {
            that.search();
        }
    }

js判断单击软键盘的“完成”按钮

方法一、模拟表单提交,

input外面包上一个form标签,当用户在表单中单击搜索或完成会触发表单的submit事件,所以在submit事件中去处理搜索的逻辑,并阻止表单的提交

html

<form action="" id="form"> <input type="text"> </form>

js

$('#form').submit(function(){ // 处理相关逻辑 return false; })

方法二、用keypress事件

最让我喜出望外的是,移动端的软键盘也是支持keypress、keydown、keyup事件的,这样实现起来就更加简单了,完成的event.keyCode是13,和键盘上的回车键一样,
代码

<input type="text" id ="txt">
$("#txt").keypress(function(e){ if(e.keyCode === 13) { // 处理相关逻辑 } })

推荐使用方法二

常用的手机浏览器都是兼容的,但不敢保证所有的都是兼容,万一有个***呢

猜你喜欢

转载自blog.csdn.net/WuLex/article/details/89195548