完整代码:
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
| <body> <input type="text" id="input"> <!-- <input type="tel"> --> <script> var input = document.getElementById('input'); input.onkeydown = function(e){ //检测键入的键的ASCLL码值 var event = e || window.event; if(event.keyCode != 8 && (event.keyCode < 48 || event.keyCode > 57)){ return false; } else return true; //中文输入法的兼容性问题 如何禁用中文输入法 } var cpLock = false;//默认中文输入法关闭 //中文输入法开始时触发compositionstart事件 document.addEventListener('compositionstart',function(e){ cpLock = true; }); //中文输入法结束时触发compositionend事件 document.addEventListener('compositionend',function(e){ cpLock = false; }); input.oninput = function(){ if(cpLock){ //将input中的A~Z a~z都替换成空字符 this.value = this.value.replace(/[A-Za-z]/g,""); } } </script> </body>
|
注意点:1、oninput事件总是后于onkeydown执行
2、compositionstart事件,非英文输入法开启时触发;
3、compositionend事件,非英文输入法结束时触发;