中文输入法打字时 input 事件连续触发,用 composition 事件分开处理

中文输入法在拼音阶段就会连续触发 input,拿到的是半成品字符。

用 compositionstart 和 compositionend 标记输入状态。

输入过程中跳过 input,在 compositionend 后取值再发请求。

let composing = false;
el.addEventListener('compositionstart', () => composing = true);
el.addEventListener('compositionend', e => { composing = false; search(e.target.value); });
el.addEventListener('input', e => { if (!composing) search(e.target.value); });
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容