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

1、业务场景

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

2、解决方案

通过查阅资料得知在输入中文(包括语音识别时)会先后触发compositionstart、compositionend事件,类似于keydown和keyup的组合。

触发compositionstart时,文本框会填入 “虚拟文本”(待确认文本),同时触发input事件;在触发compositionend时,就是填入实际内容后(已确认文本)。

先看看 compositionstart 的描述 和 compositionend 的 描述

compositionstart 事件触发于一段文字的输入之前(类似于 keydown 事件,但是该事件仅在若干可见字符的输入之前,而这些可见字符的输入可能需要一连串的键盘操作、语音识别或者点击输入法的备选词)。

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){
            	settimeout(()=>{
               		search();
              	});
            }
        })
        inp.addEventListener('compositionstart',function (){
            console.log('start');
            isComposite=true;
        })
        inp.addEventListener('compositionend',function(){
            console.log('end');
            isComposite=false;
            //由于等待拼音字母输入结束后文本框输入事件则不监听了
            //所以在结束拼写监听中放search()
            search();
        })
    </script>

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 01:50:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 01:50:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 01:50:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 01:50:04       18 阅读

热门阅读

  1. ingress

    2024-03-13 01:50:04       19 阅读
  2. 系统设计学习(一)分布式系统

    2024-03-13 01:50:04       22 阅读
  3. 直播相关——声网rtc SDK

    2024-03-13 01:50:04       27 阅读
  4. LeetCode94 二叉树的中遍历

    2024-03-13 01:50:04       19 阅读
  5. 3/11Redis学习下

    2024-03-13 01:50:04       20 阅读
  6. 关于 Conda 和 pip,你了解多少

    2024-03-13 01:50:04       27 阅读
  7. 算法训练day42leetcode01背包问题 416. 分割等和子集

    2024-03-13 01:50:04       21 阅读
  8. 笔试题之一道编程题

    2024-03-13 01:50:04       19 阅读
  9. SpringMVC11、文件上传和下载

    2024-03-13 01:50:04       22 阅读
  10. LeetCode 70 爬楼梯

    2024-03-13 01:50:04       20 阅读