input框输入中文还没回车的时候(就是还在拼音阶段的时候)会触发input事件
触发input事件导致在input事件里面做的操作失效
第一种:
直接改成监听input的变量
第二种:
简短说明:在输入中文时flag false,回车或者选择以后变成true,然后再input事件里面flag true时在执行接下来的操作
在给输入框绑定input或keydown事件时 预期效果是有输入法时,输入中文后触发事件,不希望输一个字母就触发一次事件
可以用到compositionstart,compositionend。 主流浏览器都兼容
我们可以看下官方定义:
根据规范,Composition 事件触发顺序如下:
输入开始时触发 compositionstart
选择字/词完成输入时触发 compositionend
输入过程中每次击键时触发 compositionupdate,包括 start 事件以后立即触发,end 事件以前立即触发
Composition 事件以后触发 input 事件
通过 Composition 事件,在 compositionend 里校验非直接输入,就能有效地避免不恰当的校验时机产生的用户体验问题。
我们可以设置开关flag,给表单绑定compositionstart和compositionend事件
开始输入时触发compositionstart时关闭,禁止触发
输入完成后触发compositionend时开启,触发input事件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY