JS input在输入时判断是否正在用中文输入法

我们在用input搜索框进行输入时,如果监听oninput事件,那么再输入中文的过程中只要输入一个字母就会触发事件,而我们希望再输入完整中文时才触发此事件,这种情况我们需要同时监听其它两个事件。

需要监听两个事件:

输入法输入开始:compositionstart

输入法输入结束:compositionend

我们设置一个lock全局变量,在compositionstart触发时lock=true,在compositionend触发时lock=false

在compositionend 事件中使用和oninput事件中同样的处理逻辑就可以了。

最好同时监听onchange事件,这样在失去焦点时也会触发搜索动作。

你可能感兴趣的:(前端)