解决input事件监听拼音输入法导致高频事件

1.业务场景

在文本框中输入内容,执行查询接口,但遇到一个问题,当用拼音打字写汉字去搜索的时候,会输入一些字母拼成汉字,怎么能监听等拼音文字输入完成后再触发文本框监听事件

2.解决方案

在js中有两个事件:

compositionstart:(监听拼音开始输入) 

compositionend:(监听拼音输入完成)

3.代码实现

<div>
    <input type="text" class="input">
</div>
    <script>
        var inp=document.querySelector('input');
        let isComposite=false;//控制search()触发
        function search(){
            //接口开始查询
            console.log('搜索');
        }
        inp.addEventListener('input',function(){
            if(!isComposite){
                search();
            }
        })
        inp.addEventListener('compositionstart',function (){
            console.log('start');
            isComposite=true;
        })
        inp.addEventListener('compositionend',function(){
            console.log('end');
            isComposite=false;
            //由于等待拼音字母输入结束后文本框输入事件则不监听了
            //所以在结束拼写监听中放search()
            search();
        })
    </script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路光.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值