返回列表 发帖

JS事件,一个奇怪的抱错

我写了一个方法 里面可以判断下拉箭头的响应事件 代码如下:
  function subform() {
     if (event.keyCode == 40) {
         alert("aaa");
       }

     if (event.keyCode == 38) {
         alert("bbb");
       }
   }
在静态页面,我通过别的函数调用subform()执行没有问题,但是把本页面改成.jsp后,当执行subform()函数时,告诉我缺少对象, 就是因为event.keyCode造成,我就纳闷了 在静态页面为啥不抱错,请高手指点如何解决

楼主可否将jsp页面与静态页面放上来

TOP

检查一下你文件的encoding看看

[ 本帖最后由 carson 于 2008-8-5 16:51 编辑 ]

TOP

我可能知道原因了但是我解决不了

TOP

把事件源传进去.再试试

TOP

呵呵,函数没有传参数进来啦,你的event哪里来的哦?

TOP

不是啊。
如果他用的是IE,那这个event将作为隐式可用的全局对象,用于访问上一次发生的事件 。

但这段JS跨浏览器肯定会出错的,因为FireFox、DOM2的事件机制就不是这样滴。

参看《基于J2EE的Ajax宝典》
7.4.4 在IE中访问事件对象。
7.3.1 在Netscape4中访问事件对象。
生命没有假期!
如果生命只剩下最后一秒,你可会想到我?

TOP

我这个功能是这样的: 要实现类似GOOGLE的输入提示功能,我在JSP页面处理时,首先在文本框的onFocus事件里调用showSelect(this)方法,然后在函数体定义this.onkeyup= function() {
   if(this.value=='') {return false}
        //该方法使用DWR组件,与数据库通信,objDiv是全局变量
        getResultByBybyr(this, objDiv);
    }

  function getResultByBybyr(obj, objDiv) {
    //alert("obj="+obj.value);
    if (obj == null) {
       return "";
     }
    else {
       TempOrderByAsynchronous.getResultByBybyr(obj.value, {
          callback: function(data) {
             callResponseByBybyr(data, obj, objDiv);
           }
        });
     }
   }

  function callResponseByBybyr(data, obj, objDiv) {
       setDivByParam(data, obj, objDiv);
   }

function setDivByParam(data, obj, objDiv) {
    //1:在这个方法里首先要把data数据循环添加到div里,每循环一次添加一个DIV
    //2:
      subForm(obj);
  }

function subform() {
     if (event.keyCode == 40) {
         alert("aaa");
       }

     if (event.keyCode == 38) {
         alert("bbb");
       }
   }
问题就是出现在这,我感觉是因为调用subform()时没有在具体的一个对象里响应该箭头事件,(对象比如是:文本框的onkeyup事件),我原来在静态页面里是直接把subform()放在了文本框.onkeyup的方法里

TOP

使用代表标记贴代码,
给你的阅读者减轻负担。
生命没有假期!
如果生命只剩下最后一秒,你可会想到我?

TOP

老师能给我一个类似GOOGLE的输入提示功能的例子吗,我这个例子实现服务器短太难了,而且速度很慢

TOP

返回列表