首页 新闻 赞助 找找看

一个from中有多个submit的回发问题。

0
悬赏园豆:30 [已解决问题] 解决于 2007-12-07 08:51
各位大侠们,问题壁虎又来提问了。<br><br>先把产生问题的过程说下:<br>今天想用JS在客户端执行一个按钮的onclick()事件,来引起一个回发去执行一个Button的服务器端事件。<br>调用 btn.onclick();<br>但提示 无对象。然后一检查,才发现onclick()事件为null。<br>查看html 发现按钮如下:<br>&lt;input type="submit" name="btnNext" value="下一步" id="btnNext" class="button_normal"/&gt;<br>用的是type="submit" 也就是提交来实现的点击回发。没有onclick事件。而且一个from内有多个type="submit"的按钮。<br><br>于是问题就来了:<br>如代码所示:<br>&lt;body&gt;<br>&nbsp;&nbsp;&nbsp; &lt;form name="form1" method="post" action="WebForm1.aspx" id="form1"&gt;<br>&lt;div&gt;<br>&lt;input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTQ3NjkyOTcyMmRkUcQ+2fGohGzyIbKrTz5Vh/t2CAg=" /&gt;<br>&lt;/div&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;div&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="submit" name="Button1" value="Button" id="Button1" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="submit" name="Button2" value="Button" id="Button2" /&gt;&lt;/div&gt;<br>&nbsp;&nbsp;&nbsp; <br>&lt;div&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwLLhbb8BgKM54rGBgK7q7GGCKnsv6niZyFRhWMec9EHCuSmBjg/" /&gt;<br>&lt;/div&gt;&lt;/form&gt;<br>&lt;/body&gt;<br>一个from中有多个submit。<br>那么提交后,<br>1、服务器端是怎么判断哪个submit发出的回发呢?<br>2、在js中,如果要去触发Button1的回发,然后使服务器端也能执行相应的onclick事件。应该怎么做?<br>3、2个隐藏控件。__VIEWSTATE存的是ViewState,我知道。但是第二个__EVENTVALIDATION又存的是什么?用ViewStateDecoder2工具看出来的就是3个数字,不知道什么意思。<br><br>希望哪位大侠能帮忙回答一下。或者有什么相应的资料或文章也请不吝提供。<br><br>
问题补充: 首先声明我没有攻击别人网站的想法。之所以只贴了客户端代码,那是因为问的问题与服务端无关,其实服务器端什么都没写,只是在页面上托了2个Button。 Klesh Wong的解答了我的第1个问题。在此表示感谢。 当submit类型的input元素被点击时,browser会把该input的name和value作为字段post到服务器,那么服务器端就可以根据这个字段来判断是哪个button被click了。 但是 submit类型的input元素 是没有onclick事件的(当然你可以添加客户端的onclick,但是在本问题中没有。)所以不能用 js调用onclick方法。 希望有高人能帮忙回答2,3。
壁虎的主页 壁虎 | 初学一级 | 园豆:140
提问于:2007-12-05 16:39
< >
分享
最佳答案
0
应该调用click()触发button的click事件,onclick是用来定义button被click时应该执行的操作。 当submit类型的input元素被点击时,browser会把该input的name和value作为字段post到服务器,那么服务器端就可以根据这个字段来判断是哪个button被click了。
Klesh Wong | 小虾三级 |园豆:780 | 2007-12-05 21:57
其他回答(3)
0
难道楼主在研究如何攻击别人的网站?为什么只有编译后的页面代码?编译前的呢?
麒麟.NET | 园豆:3614 (老鸟四级) | 2007-12-05 16:53
0
呵呵。。麒麟说的精辟!!
彭成刚 | 园豆:5 (初学一级) | 2007-12-05 17:30
0
呵呵,就是呀楼主! 如果楼主不是网友麒麟.NET所说的在攻击他人网站,而是自己开发的程序,那么,我想问楼主,既然你要让服务器处理事件,为何还用标记控件呢,怎么不用.Net提供的服务器端的控件,服务器端控件不需要你考虑那么多细节问题,你的问题就能被解决。楼主是从Java转型到.Net上的吗,还沿用Java的做法?
刚刚 | 园豆:3151 (老鸟四级) | 2007-12-05 19:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册