vue中解决模糊搜索输入中文时--未输入完成时触发input事件

本文介绍如何使用compositionstart和compositionend事件优化中文输入时的用户体验,避免在输入法环境下频繁触发事件导致的问题。通过合理利用Composition事件,可以有效提升表单输入的交互效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在给输入框绑定input或keydown事件时 预期效果是有输入法时,输入中文后触发事件,不希望输一个字母就触发一次事件

可以用到compositionstartcompositionend。 主流浏览器都兼容

我们可以看下官方定义

根据规范,Composition 事件触发顺序如下:

  • 输入开始时触发 compositionstart
  • 选择字/词完成输入时触发 compositionend
  • 输入过程中每次击键时触发 compositionupdate,包括 start 事件以后立即触发,end 事件以前立即触发
  • Composition 事件以后触发 input 事件

通过 Composition 事件,在 compositionend 里校验非直接输入,就能有效地避免不恰当的校验时机产生的用户体验问题。

我们可以设置开关flag,给表单绑定compositionstart和compositionend事件

开始输入时触发compositionstart时关闭,禁止触发

输入完成后触发compositionend时开启,触发input事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值