【日常记录】【JS】input标签输入中文导致value值的不正确

文章目录

1、描述

input标签中,输入中文时,如若监听 input 事件,会得到意想不到的结果,如下面的图所示

2、解决方案

可以用到 compositionstart 监听输入中文开始的事件,compositionend 监听输入中文结束的事件

html 复制代码
  <input type="text" id="abc" autocomplete="off">
  <script>
    let inputEl = document.querySelector('#abc')
    let isChinese = false;
    inputEl.addEventListener('input', (e) => {
      if (!isChinese) {
        handleSearch()
      }
    })


    inputEl.addEventListener('compositionstart', (e) => {
      isChinese = true
      console.log('开始输入中文');
    })
    inputEl.addEventListener('compositionend', (e) => {
      isChinese = false
      console.log('结束输入中文');
      handleSearch()

    })


    function handleSearch() {
      console.log(`搜索 ${inputEl.value}`);
    }
  </script>

3、参考

相关推荐
先吃饱再说1 分钟前
React 组件通信:从 Props 单向传递到自定义事件
前端·react.js·前端框架
swipe6 分钟前
05|(前端转后全栈)不手写一堆 SQL,后端怎么操作数据库?MyBatis-Plus 入门
前端·后端·全栈
swipe10 分钟前
04|(前端转后全栈)前端状态为什么不够用?从页面数据到 MySQL 持久化
前端·后端·全栈
橘子星11 分钟前
别光看教程!手把手拆解 React Todo 项目,一文吃透 5 个核心概念
前端·javascript
大白要努力!17 分钟前
纯前端实现 PDF 加水印工具 —— 零后端、支持中文、实时预览
前端·pdf·html
石小石Orz19 分钟前
TRAE SOLO实战:实现一个桌面3D助手
前端·人工智能
蜡台25 分钟前
使用 uni-popup 实现数据选择器Data-Picker
前端·javascript·html·uniapp·uni-popup·data-picker
拆房老料26 分钟前
BaseMetas FileView 1.2.0 发布:Office/WPS 大文件预览与内存安全优化实测
前端·产品运营·开源软件
blns_yxl29 分钟前
Promise封装Fetch + 重试机制(HTML+JS)
前端·javascript·html
Elastic 中国社区官方博客34 分钟前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索