<html>
    <head>
        <title>Number Only</title>
    </head>
    <body>
        <form>
            <input type="text" id="txt1"  validChars="0123456789" onkeypress="userMethod();">
        </form>
        <script type="text/javascript">
            var oText = document.getElementById("txt1");
        //    oText.onkeypress = userMethod;
            function userMethod(e){//这里改为 var userMethod = function(e){     
           e =     e || window.event;
                var keyCode = e.keyCode || e.charCode;
                var s = String.fromCharCode(keyCode);
                if(oText.getAttribute("validChars").indexOf(s) < 0){
                    if(e && e.preventDefault){
                        e.preventDefault();
                    }else{
                        e.returnValue = false;
                    }
                }
            };
        </script>
    </body>
</html>重发下代码,请问是什么问题?(请回答得比较有技术含量点)

解决方案 »

  1.   

    这样写?
    <html>
        <head>
            <title>Number Only</title>
        </head>
        <body>
            <form>
                <input type="text" id="txt1"  validChars="0123456789" onkeypress="userMethod(event);">
            </form>
            <script type="text/javascript">
                var oText = document.getElementById("txt1");
            //    oText.onkeypress = userMethod;
                function userMethod(event){//这里改为 var userMethod = function(e){                e =     e || window.event;
    alert(event.keyCode);
    alert(event.charCode);
                    var keyCode = event.keyCode || event.charCode;
                    var s = String.fromCharCode(keyCode);
                    if(oText.getAttribute("validChars").indexOf(s) < 0){
                        if(event && event.preventDefault){
                            event.preventDefault();
                        }else{
                            event.returnValue = false;
                        }
                    }
                };
            </script>
        </body>
      

  2.   

    跟你说了是浏览器兼容问题
    ff没有window.event
      

  3.   

    firefox没有window.event我知道,所以我才写 e =     e || window.event;
      

  4.   

    谢谢SilverNet 提供的答案,可以结贴了