test(e){
 e=e||window.event;
 var src=e.srcElement||e.target;
 var form=src.form;
 var id=form.id;
 var name=form.name;
 //go on ...
}

解决方案 »

  1.   

    <form name="f1" id = "f1">
          <input name="b1" id="bi" type="button" onclick="test();">
          </form>
    呵呵~~~~~~~~~
    按照你的思路不用改太多,在test(参数)参数中传递就好了
    test(this.name/this.id);
    我以前试过效果还可以!!
    知道的不多大家多多交流了
      

  2.   

    不传参数的话只能通过事件来定义
    test(){
     var e=arguments[0]||window.event;
     var src=e.srcElement||e.target;
     var form=src.form;
     var id=form.id;
     var name=form.name;
     //go on ...
    }
      

  3.   

    这段我还没有调通!arguments[0] 是用来存放事件的数组吗?我在页面上有多个按钮都定义了onclick事件,该怎么处理?
      

  4.   

    补充一下!
    我的意思是 一个按钮定义了多个事件连续执行,和多个按钮每个按钮多个事件,arguments[0]里面是怎么处理的?
      

  5.   

    理解一下事件模型,对于IE,事件从window.event取,对于其他的大部分浏览器,事件通过参数传入处理函数。对每个处理函数,都会这样传事件的。
      

  6.   

    这是我最后写出来的方法!请兄弟指正一下!
    处理的方法就是从事件获得元素然后回朔!function getFormName()
    {
     var src=window.event.srcElement;
     var na=src.id;
     var ele=document.getElementById(na);
     for(;ele.tagName!="FORM";)
     {
     ele=ele.parentNode;
     }
    alert("fome name is: "+ ele.name);
    }
      

  7.   

    不用吧,老大,直接
    src=window.event.srcElement;
    form=src.form;
    alert("fome name is: "+ form.name);而且这样只能在IE中运行
      

  8.   

    我用 form=src.form;  取不到啊!
      

  9.   

    在ie里面 提示:form.name为空或不是对象