<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
    <script>
        function showKeyCode(event) {
            event = window.event || event;
            alert(event.keyCode);
            //alert(String.fromCharCode(event.keyCode));
        }
    </script>
</head>

<body>
不能输入中文:<input type="text" name="textfield" onkeyup="this.value=this.value.replace(/[^\da-z._-]/ig,'');"/><br/>
只允许输入数字和小数点:<input onKeypress="return (/[\d.]/.test(String.fromCharCode(event.keyCode)))" style="ime-mode:Disabled"><br/>
得到按键的keycode:<input onKeyup="showKeyCode();" style="ime-mode:Disabled"><br/>
<pre>
第一部分:浏览器的按键事件
用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown、 onkeypress和onkeyup这三个事件句柄。一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup。
在这3种事件类型中,keydown和keyup比较底层,而keypress比较高级。这里所谓的高级是指,当用户按下shift + 1时,keypress是对这个按键事件进行解析后返回一个可打印的“!”字符,而keydown和keyup只是记录了shift + 1这个事件。[1]
但是keypress只能针对一些可以打印出来的字符有效,而对于功能按键,如F1-F12、Backspace、Enter、Escape、 PageUP、PageDown和箭头方向等,就不会产生keypress事件,但是可以产生keydown和keyup事件。然而在FireFox中,功能按键是可以产生keypress事件的。
传递给keydown、keypress和keyup事件句柄的事件对象有一些通用的属性。如果Alt、Ctrl或Shift和一个按键一起按下,这通过事件的altKey、ctrlKey和shiftKey属性表示,这些属性在FireFox和IE中是通用的。
</pre>
参考资料:<br/>
<a href="http://blog.csdn.net/xushichang/article/details/4041507">http://blog.csdn.net/xushichang/article/details/4041507<a/>
<br/>
<a href="http://www.cnblogs.com/lr-ting/archive/2013/04/12/3016927.html">http://www.cnblogs.com/lr-ting/archive/2013/04/12/3016927.html</a>
</body>
</html>