今天写一个检测input输入内容的进行不同处理的demo,习惯用oninput事件绑定,然后发现oninput不能识别Enter键,故改用onkeypress,但发现无法区分标点逗号,无法实时监控中文输入,然后改用onkeydown,通过检查keyCode的值进行实时监测,虽然又出现其他问题,但还能处理。查看了一些资料, 来总结一些文本输入相关的事件;
oninput 是HTML5 引入的标准事件,IE9支持,不支持功能键输入; 可通过 'oninput' in document.createElement('input') 检测浏览器是否支持
onkeypress,onkeydown,onkeyup 是键盘事件,有keyCode 等属性;
onkeypress : 在按下并放开任何字母数字键时触发,功能键不能响应,自然也就不能区别中英文标点,字母的大小写;
onkeydown : 在按下任意键盘键时触发;
onkeyup : 在松开之前按下的键时触发;
HTML:
input.onkeydown = function(){
console.log(event); //按任意键都会触发
console.log(event.keyCode); //中文标点符号的时候触发的keyCode 码都是229
console.log(this.value); //完整
}
//onkeyup同onkeydown;
</code></pre>
onchange,onpropertychange
onchange :在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效
onpropertychange :不用考虑是否失去焦点,不管js操作还是键盘鼠标手动操作,只要HTML元素属性发生改变即可立即捕获到。遗憾的是,onpropertychange为IE专属的 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|