中文输入法在拼音阶段就会连续触发 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






暂无评论内容