案例:实现在输入框内只允许输入数字,输入其他字符无效的功能。
1、原生 JavaScript 的 onkeydown 事件
1 | <input type="text" onkeydown="preventKeyCode()" /> |
1 2 3 4 5 6 7 8 | function preventKeyCode() { //event对象、document对象以及window对象可以不用定义直接使用 var keyCode = event.keyCode; if(event.keyCode < 48 || event.keyCode > 57){ //阻止键盘的按键起作用 event.preventDefault(); } } |
2、Vue.js 的 onkeydown 事件
1 2 3 | <div id="app"> <input type="text" v-on:keydown="preventKeyCode($event)"> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | new Vue({ el:"#app", methods:{ //$event是vue中的事件对象,与原生js的event对象一样 preventKeyCode:function(event){ var keyCode = event.keyCode; if(event.keyCode < 48 || event.keyCode > 57){ //阻止键盘的按键起作用 event.preventDefault(); } } } }); |
运行效果:
3、完整 Demo 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>v-on:keydown</title> <script src="js/vue.js"></script> </head> <body> <div id="app"> Vue:<input type="text" v-on:keydown="vuePreventKeyCode($event)"> <hr/> 原生JS:<input type="text" onkeydown="preventKeyCode()" /> </div> </body> <script> new Vue({ el:"#app", methods:{ //$event是vue中的事件对象,与原生js的event对象一样 vuePreventKeyCode:function(event){ var keyCode = event.keyCode; if(event.keyCode < 48 || event.keyCode > 57){ //阻止键盘的按键起作用 event.preventDefault(); } } } }); //原生js的键盘按下事件 function preventKeyCode() { //$event是vue中的事件对象,与原生js的event对象一样 var keyCode = event.keyCode; if(event.keyCode < 48 || event.keyCode > 57){ //阻止键盘的按键起作用 event.preventDefault(); } } </script> </html> |