禁止非直接输入
var lock = false; var inputEle = document.getElementById('inputEle'); // input 事件中的处理逻辑, 这里仅仅打印文本 var todo = function (text) { console.log(text) }; inputEle.addEventListener('compositionstart', function () { lock = true; }); inputEle.addEventListener('compositionend', function (event) { lock = false; // compositionend 事件发生在 input 之后,故此需要此处调用 input 中逻辑 todo(event.target.value); }); inputEle.addEventListener('input', function (event) { // 忽略一切非直接输入,不做逻辑处理 if (!lock) todo(event.target.value); });