日期:2014-05-16  浏览次数:20494 次

submit事件发生的时候,如何知道是哪个按钮提交的
例如有100个type=submit的按钮,
点击其中的一个,submit事件发生的同时,在js中如何获取是到底哪个按钮提交的?

不要告诉我在每个按钮的onclick事件中做处理,这不是我想要的。


------解决方案--------------------
获取由IE捕捉的事件对象,然后获取哪个控件触发
whichIt = event.srcElement;
------解决方案--------------------
遍历吧。

<script language= "javascript ">
var form1=document.forms[ "form1 "];
for(var i=0; i <form1.length; i++){
if(form1[i].type== "submit "){
form1[i].onclick = function(){
alert(this.id);
}
}
}
</script>
------解决方案--------------------
似乎办不到
------解决方案--------------------
在resubmit时应该能检测
手里没有工具不好测试


或着

你干脆就每个type=submit的都加个onclick事件 (作用是给一个隐藏的input付值这样客户端和服务器端以后都好处理)
------解决方案--------------------
<form name=frm onsubmit= "alert(document.activeElement.outerHTML); " action= "http://www.google.com " >
<input name=a>
<input name=a>
<input name=b1 type=submit value= "b1 ">

<input name=a>
<input name=a>
<input name=b1 type=submit value= "b2 ">


</form>
------解决方案--------------------
这个方法不错,不过没测试过,不知道是否有效
------解决方案--------------------
if(document.activeElement.id== "btnSave ")
{
}

就是这个 写过这样的代码 所有按钮提交时统一判断 然后根据活动ID来区分
------解决方案--------------------
何必那么复杂呢?
<script>
var clickButton;
</script>
....
<input id= "button1 " type=submit onclick= "clickButton =this ">
<input id= "button2 " type=submit onclick= "clickButton =this ">
.......................



------解决方案--------------------
以ie为例,一个页面中,每个元素的sourceIndex都不同,uniqueID也都不同(
即使100个submit按钮都有相同的name属性以及相同的文字标签)。

顺便说一句,即使有100个submit按钮,但实际上默认按钮还是只有一个,你看看网页效果就可以区分出来,默认按钮的边框不一样,在单行文本框里面按回车的时候,相当于点击了那个默认按钮。

对于100个submit按钮,如何在程序中区分也非常简单,上面各位朋友说了很多了。
我再加一个简单的统一识别方法(以ie为例):
<form ... onclick= "s();return false; ">
(注意,这里是onclick,不是onsubmit)
<input type=submit value=b1>
...(b2~b99)...
<input type=submit value=b100>
</form>
<script>
function s(){
var o=event.srcElement; if(o.type== "submit "){alert(o.value);}
}
</script>