限制输入框字符键入的问题(键盘事件)

做输入框字符限制的操作,想从键盘事件入手发现的问题如下:

  • keydown事件做判断限制。这时候还没有把键入的值赋给输入框,return false; 可以阻止字符键入。
    • 无法顺利获取keyCode(中文),中文下获取的event.keyCode=229。
    • 然后发现event.key这一属性,可以勉强解决中文的keyCode的问题,但是IE8不支持event.key(IE兼容问题)。
  • keyup事件做判断限制,缺点是会有闪现键入字符的现象。
    • keyup事件可以顺利获取键入字符的keyCode。
    • 但是此时已经将键入的值赋于输入框了,可通过重新改变元素的value达到效果,但是有闪现字符的现象。

你可能感兴趣的:(JS)