废话不多说,上代码:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title></title> <script type="text/javascript"> //8:backspace 46:delete 37:左 39:右 /** * onkeydown * 只能主键盘 输入数字0-9 * 可以用'backspace' 'delete' '<-' '->' */ function numOnly(){ if((event.keyCode<=47 &&event.keyCode!=8&&event.keyCode!=46&&event.keyCode!=37&&event.keyCode!=39) || event.keyCode>=58 ) { event.returnValue=false; } } /** * onkeydown * 只能主键盘、小键盘 输入数字0-9 * 可以用'backspace' 'delete' '<-' '->' */ function numOnly2(){ if((event.keyCode<=47 &&event.keyCode!=8&&event.keyCode!=46&&event.keyCode!=37&&event.keyCode!=39) || (event.keyCode>=58 && event.keyCode<=95) || event.keyCode>=106) { event.returnValue=false; } } /** * 只能输入数字0-9和 .(小数点) * 可以用'backspace' 'delete' '<-' '->' * 主键盘、小键盘 */ function numDotOnly(){ if((event.keyCode<=47 &&event.keyCode!=8&&event.keyCode!=46&&event.keyCode!=37&&event.keyCode!=39) || (event.keyCode>=58 && event.keyCode!=190) ) { event.returnValue=false; } } /** * 只能输入数字0-9和 .(小数点) * 可以用'backspace' 'delete' '<-' '->' * 主键盘、小键盘 */ function numDotOnly2(){ if((event.keyCode<=47 &&event.keyCode!=8&&event.keyCode!=46&&event.keyCode!=37&&event.keyCode!=39) || (event.keyCode>=58 && event.keyCode<=95)|| (event.keyCode>=106&& event.keyCode!=110 && event.keyCode!=190) ) { event.returnValue=false; } } function showKeyCode(){ alert(window.event.keyCode) } </script> </head> <body> <table> <tr> <td>只能主键盘输入0-9</td> <td><input type="text" id="t1" onkeydown="numOnly()"/></td> </tr> <tr> <td>只能主键盘、小键盘输入0-9</td> <td><input type="text" id="t2" onkeydown="numOnly2()"/></td> </tr> <tr> <td>只能主键盘输入0-9.</td> <td><input type="text" id="t3" onkeydown="numDotOnly()"/></td> </tr> <tr> <td>只能主键盘、小键盘输入0-9.</td> <td><input type="text" id="t4" onkeydown="numDotOnly2()"/></td> </tr> </table 测试keycode<input name= "a " onkeydown= "showKeyCode() " type= "text " /> </body> </html>
直接在keydown的时候就截掉输入事件,根本不让输。
不用replace那种别扭的方法 - 输进了字母再替换掉,好丑!