关于compositionendstart在html中不触发的问题

工作过程中涉及到了移动端输入內容长度的限定这就要求需要对输入过程中内容的变化进行监控和判定,以决定是否可以继续输入所以就想着是否可以在相关输入处監听oninput事件?但是在手机端中文输入过程中,默认输入框里面会显示相关的英文字母这个时候会触发oninput事件,但是这个时候输入并没有结束所以导致判断时机不正确。经过在网上的查找找到了compositionendstart和compositionendend两个事件进行一个开关判断。

当浏览器有非直接的文字输入时, compositionendstart事件会以同步模式触发.

当浏览器是直接的文字输入时, compositionendend会以同步模式触发.

看了两个事件就明白,开始中文输入时会触发compositionendstart事件选词结束后会触发compositionendend事件,忽略这两個事件之间的input事件即可为元素添加这个两个事件,做一个开关如下:

通过上面上面两个事件就可以解决移动端中文输入法触发input事件的问題了。

感觉还是好坑不能算是完美的解决这个问题,暂时只能先这样处理填坑了大家有好的方法麻烦留言告诉下:)

我要回帖

更多关于 compositionstart 的文章

 

随机推荐