datalist控件输入中文时事件触发问题分析

今天项目中datalist输入中文时,使用微软输入法和谷歌输入法时,由于输入的拼音会直接进入页面输入框,因此会直接触发oninput事件,同时也会触发onkeyup事件。


但使用搜狗输入法、百度输入法等国产输入法时,输入法会阻断javascript捕捉到键盘的onkeyup事件,直到用户使用数字键或者空格键确认了中文输入,或者使用回车键直接输入了英文,因此在国产输入法和外国输入法这二者输入中文的时候会造成系统反应不同,似乎是“事件失效”,简单分析如上。


因此,对于键盘输入,输入法程序会在浏览器之前获取到,至于是否让这外设输入进入之后的环节(如浏览器页面等),则取决于输入法程序的设计。


oninput:(非IE浏览器)作用同onpropertychange。


onpropertychange:(IE浏览器)在文本框中输入内容触发,脚本改变文本框内容也可以触发。


onkeyup、onkeydown:按键触发,一个是按下时触发,一个是按键恢复弹出时触发。

展开阅读全文

没有更多推荐了,返回首页