输入框事件监听(二):中文输入与229

时间:2022-08-23 09:54:39

继续之前的例子,我们在文本框中输入“中文”两个汉字,并且每个汉字都确认一次,最后事件监听的输出结果如下图所示。
输入框事件监听(二):中文输入与229

从这张图中我们发现如下问题:
1. 在中文输入法下,keydown监听到的键值都是229,完全没有参考意义,所以为了准确地监听键盘事件,最好监听keyup事件。
2. 如果输入的速度较快,keyup事件可能不会及时触发,但一定会触发,所以会出现keyup事件连续触发的情形,也可能会产生错误,例如本例中多报了一次“zh”,少报了一次“z”。
3. 在确认中文输入时,会产生额外的键值,例如本例中是32(我是用空格键进行确认的)。

禁止中文输入

通过在style中设置“ime-mode:disabled;”可以禁止输入法切换,但chrome却不支持,IE与Firefox都能完美支持。

Firefox输入事件

在firefox环境下,快速输入中文,大部分的keyup事件都不会触发,看清楚,是不会触发,并且键值彻底消失了,这点让我很奇怪,见下图。
输入框事件监听(二):中文输入与229