下面的代码在IE,FF中都可以正常运行的<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script language="javascript" type="text/javascript">
    function lessThan(e) {
        if (!e) e = window.event;
        var element = typeof event != "undefined" ? event.srcElement : e.target;
        document.title = e.keyCode | e.which | e.charCode;
        switch (e.keyCode | e.which | e.charCode) {
          case 9: // table
            case 8: // backspace
            case 46: // delete
            case 35: case 36: case 37: case 38: case 39: case 40: // home、end、left、up、right、down
            case 116: // f5
                return true; /* */
        }
        return element.value.length < element.getAttribute("maxlength");
    }
</script>
</head><body>
<form>
<label id="l1">表单</label><br>
<input type="text" id="name"  maxlength="10"/>
<p><label for="comments">我要留言:</label>
</p>
<input name="comments" id="comments" type="text" maxlength="10" onkeypress="return lessThan(event);"/>
</form>
</body>
</html>
但是在把上面的代码改写成这样时就FF就报错了

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script language="javascript" type="text/javascript">window.onload=function()
{
var _c=document.getElementById("comments");_c.onkeypress=function()
{
return lessThan(event);
}

}
    function lessThan(e) {
        if (!e) e = window.event;
        var element = typeof event != "undefined" ? event.srcElement : e.target;
        document.title = e.keyCode | e.which | e.charCode;
        switch (e.keyCode | e.which | e.charCode) {
          case 9: // table
            case 8: // backspace
            case 46: // delete
            case 35: case 36: case 37: case 38: case 39: case 40: // home、end、left、up、right、down
            case 116: // f5
                return true; /* */
        }
        return element.value.length < element.getAttribute("maxlength");
    }
</script>
</head><body>
<form>
<label id="l1">表单</label><br>
<input type="text" id="name"  maxlength="10"/>
<p><label for="comments">我要留言:</label>
</p>
<input name="comments" id="comments" type="text" maxlength="10" />
</form>
</body>
</html>
请知道为什么第二种方法为什么在FF中报错的高手给说说应该如何改,明白后立即给分,谢谢

解决方案 »

  1.   

    在FF下报错是:
    event is not defined
    [Break on this error] return lessThan(event);我很是不明白,请高手给说说,明白立即给分,
      

  2.   


    _c.onkeypress=function(event)
    {
    return lessThan(event);
    }
      

  3.   

    火狐的event时间必须显性的传递过去
      

  4.   

    用1L的即可,你没有传入event对象
      

  5.   

    JS代码有时候不能照猫画虎,必须照猫画猫才行:))像楼上说的FF要求显式传递event事件才可以。其实第一段代码已经很完善了,没必要改动