【日常记录】【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 Scheduler调度器
前端·react.js·前端框架
徐同保1 小时前
使用yarn@4.6.0装包,项目是react+vite搭建的,项目无法启动,报错:
前端·react.js·前端框架
Qrun2 小时前
Windows11安装nvm管理node多版本
前端·vscode·react.js·ajax·npm·html5
中国lanwp2 小时前
全局 npm config 与多环境配置
前端·npm·node.js
JELEE.3 小时前
Django登录注册完整代码(图片、邮箱验证、加密)
前端·javascript·后端·python·django·bootstrap·jquery
TeleostNaCl5 小时前
解决 Chrome 无法访问网页但无痕模式下可以访问该网页 的问题
前端·网络·chrome·windows·经验分享
前端大卫6 小时前
为什么 React 中的 key 不能用索引?
前端
你的人类朋友6 小时前
【Node】手动归还主线程控制权:解决 Node.js 阻塞的一个思路
前端·后端·node.js
小李小李不讲道理8 小时前
「Ant Design 组件库探索」五:Tabs组件
前端·react.js·ant design
毕设十刻8 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js