IE可以试试window.event.fromElement,其他浏览器还真不知道

解决方案 »

  1.   


    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1"><title>
    无标题页
    </title></head>
    <body>
        <form name="form1" method="post" action="Default.aspx" id="form1" onsubmit="alert(window.event.fromElement)">
    <div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTQ2OTkzNDMyMWRkB2mDmMhUtHiGfbuc6XLmFCLwx3E=" />
    </div>    <input type="submit" name="btnSend" value="提交" id="btnSend" />
        
    <div> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgLSsZumBgKFzrr8Aa4OL9d6zZ/2BtehzwawuJb4zoZA" />
    </div></form>
    </body>
    </html>
      

  2.   

    以上为HTML代码 onsubmit="alert(window.event.fromElement)" 修改这里得到所提交控件的ID
      

  3.   

    因为我要在onsubmit里面对所提交的控件做一些操作,只想写在form里
    如果在按钮的地方加的话 那我不是全都要加上?
    太麻烦了吧
      

  4.   

    <HTML>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <script language="javascript">
             var curObj;
            </script>
        </head>
        <body>
            <div id="div1">
             <form id="form1" onsubmit="alert(curObj.id);">
             <input type="text" id="text1" value="">
    <input type="submit" value="submit" id="btn1" onclick="curObj=this;">
             </form>
            </div>
        </body>
    </HTML>
      

  5.   

    RE:
    传递参数啊
    <input type="submit" value="submit" id="btn1" onclick="curObj=this;">
    --------------------------
    我就是不想用这种方法啊
    这样的话,如果我的Form当中有100个按钮,那我不是都得给他们添加onclick事件
    不太现实啊谢谢
      

  6.   


    首先form.onsubmit的发起对象是form自身,而不是button.
    如果只是数量的问题,你可以像下面这样解决.<HTML>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <script language="javascript">
                var curObj;

    window.onload = function(e){
    var _a = document.getElementById("form1").getElementsByTagName("input");

    for(var i=0;i<_a.length;i++){
    if(_a[i].type=='button' || _a[i].type=='submit'){
    _a[i].attachEvent("onclick",function(){curObj = window.event.srcElement;});
    }
    }

    }
            </script>
        </head>
        <body>
            <div id="div1">
                <form action="#" id="form1" onsubmit="alert(curObj.id);return false;">
                    <input type="text" id="text1" value=""><br>
    <input type="submit" value="submit1" id="btn1"><br>
    <input type="submit" value="submit2" id="btn2"><br>
    <input type="submit" value="submit3" id="btn3"><br>
    <input type="submit" value="submit4" id="btn4"><br>
    <input type="button" value="submit5" id="btn5"><br>
    <input type="submit" value="submit6" id="btn6"><br>
    <input type="submit" value="submit7" id="btn7"><br>
    <input type="button" value="submit8" id="btn8"><br>
    <input type="submit" value="submit9" id="btn9"><br>
    <input type="submit" value="submit10" id="btn10"><br>
    <input type="submit" value="submit11" id="btn11"><br>
                </form>
            </div>
        </body>
    </HTML>
      

  7.   

    RE:你这样添加onclick事件是不行的因为我用的是ASP.NET
    我提交的未必就只有button还有
    LinkButton CheckBOx DropList ... 还有可能我的那些控件已经有了onclick事件
    这样的话会替代了我的那些onclick事件谢谢
      

  8.   


    控件的类型你可以在判断条件中追加。关于事件,我考虑到你可能会是这样的。
    因此我使用了 attachEvent,
    我做的时候偷懒没有加FF兼容的处理。
    很容易实现,我就不多说了。
    需要注意的是,FF下与之对应的方法是addEventListener.
    这样的话只是为事件添加了一个处理方法。
    不会覆盖。
    关于attachEvent / addEventListener的用法不了解的话,
    搜索一下,很容易找到。
      

  9.   

    function(evt)
    {
    var e=evt||window.event;
    var src= e.srcElement||e.target;
    }
    这里src即是事件的源