PHP用JS修改action值提交form,提交另一个form时前面传递的参数一直存在

由于要做校验,所以不能用submit,改成button用onclick调JS提交。
页面有2个form,平行关系,无嵌套。一个id和name都是form1,用type=submit的按钮提交,按钮name是button1,另一个id和name都是form2,用type=button的按钮调JS提交,按钮NAME是button2。
JS提交办法,frm = document.getElementById("form2");frm.action="xxx.php?button2=1"(xxx.php就是当前页面。跳转到原页面);frm.submit(); 按钮是button的时候值无法提交,所以自己想了个办法加在url后面。
页面开头用PHP判断if($button2)则是form2提交,进行相应操作。
问题是:按了一次button2提交正常,但是紧接着再按button1的时候,if($button2)还是成立,仍然当成是form2提交操作,而且输出button2的值是1,明显是前面一个url赋的值,于是百思不得其解。form1提交的时候,button2的值难道不是应该带不出来么?而且我form1的action是空啊,form1的action没有任何函数去改动。

我想问题在于你提问中说明的“(xxx.php就是当前页面。跳转到原页面)”,也就是说你是把表单提交到当前的页面喽,那么这时候你看地址栏的URL应是"xxx.php?button2=1",当你点击button1的时候,还是从地址栏的button2=1提交了参数,所以出现你的问题。

改进方法很简单,因为问题正是在于你的提问中说明的“而且我form1的action是空啊”,你只要给form1加上action地址就行了,也就是你的xxx.php
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-15
查了一下,action为空时会提交到当前页面,悲剧的是,此时你页面的url变成了xxx.php?button2=1,后面的就不用说了,相信你懂的
第2个回答  2013-11-15
方法绑定的地方错了吧,有代码吗?