微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JS关于文本输入的相关事件

今天写一个检测input输入内容的进行不同处理的demo,习惯用oninput事件绑定,然后发现oninput不能识别Enter键,故改用onkeypress,但发现无法区分标点逗号,无法实时监控中文输入,然后改用onkeydown,通过检查keyCode的值进行实时监测,虽然又出现其他问题,但还能处理。查看了一些资料, 来总结一些文本输入相关的事件;

oninput 是HTML5引入的标准事件,IE9支持不支持功能键输入;
可通过 'oninput' in document.createElement('input')检测浏览器是否支持

onkeypress,onkeydown,onkeyup 是键盘事件,有keyCode 等属性
onkeypress : 在按下并放开任何字母数字键时触发,功能键不能响应,自然也就不能区别中英文标点,字母的大小写;
onkeydown: 在按下任意键盘键时触发;
onkeyup: 在松开之前按下的键时触发;

HTML:
中文和中文标点符号不会触发事件
      console.log(event.keyCode);
      console.log(this.value);  //this.value不能获取最后输入的那个字符;
    }
input.onkeydown = function(){
  console.log(event);   //按任意键都会触发
  console.log(event.keyCode);  //<a href="https://www.jb51.cc/tag/zhongwenbiaodian/" target="_blank" class="keywords">中文标点</a>符号的时候触发的keyCode 码都是229
  console.log(this.value);  //完整
}
//onkeyup同onkeydown;
</code></pre>

onchange,onpropertychange
onchange:在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效
onpropertychange:不用考虑是否失去焦点,不管js操作还是键盘鼠标手动操作,只要HTML元素属性发生改变即可立即捕获到。遗憾的是,onpropertychange为IE专属的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐