现代化大部分的浏览器,都可以再键入 [中文] 后自己筛选内容,唯有 iOS 还要在按一下 [换行] 才可以。这里 [换行] 按钮正确翻译应该是 [输入] / [回车],人家是 [return]。
iOS 的 Safari 坑:如果你要触发文字输入框的自动触发事件,要避免 iOS 跟其他体验不一样,需要将 [keyup] 事件,改成 [input propertychange] 才可以。
MARK:早期上古时代的 IE9 以下的浏览器,keyup 事件是也没反应的,要使用 IE 特有的 onpropertychange
事件才行,这个部分 iOS 的 safari 和 IE 竟然在同一个时代 ..
原生 JS:
document.getElementById("input").onpropertychange = keys(); document.getElementById("input").addEventListener("input", keys, false); function keys(){ // 触发事件 }
jQuery:
$('input').on("input propertychange", function(){ ... });
对于可能需要的 preventDefault:
if (e.key === "Enter") { e.preventDefault(); }