搜索框应绑定 input 事件而非 keyup,因 input 覆盖粘贴、语音输入、中文上屏等所有文本变更场景;移动端需检查 disabled/readonly、touch-action/user-select 及聚焦时机。

为什么搜索框绑 oninput 而不是 onkeyup
因为 onkeyup 会漏掉粘贴、语音输入、中文输入法上屏、长按重复输入等场景,用户实际体验就是“输完了没反应”。input 事件才是浏览器原生触发的、唯一覆盖所有文本变更方式的事件。
常见错误:在移动端监听 onkeyup,结果用户用拼音输入法打“zhang”,选词确认后不触发;或者 Ctrl+V 粘贴整段文字,只触发最后一次按键的 onkeyup,漏掉前面所有字符。
- 必须用
addEventListener('input', handler),别写内联oninput="..."(不易维护、无法移除) - 如果表格或筛选逻辑较重,加 200–300ms 防抖:
clearTimeout(timer); timer = setTimeout(() => filter(), 250) - IE11 不支持
input?可 fallback 到propertychange,但仅限必要时启用,且要检测event.propertyName === 'value'
多条件筛选为什么必须用
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










