在使用框架或者编写其他的处理程序的时候会遇到这种情况,在一个表单中有多个输入的信息,但要采用不同的处理方法,也就是需要传递给不同的后台文件中去,但form的属性中只能写一个action,我们如何去把同一个表单中的内容传递给不同的处理程序呢?
我这里有两种解决的办法,一个是利用html5的新特性,另一个则是用jquery来解决。
html5新特性
在html5中有个方法,在input同时type=“submit”的标签中存在两个属性 form 和formaction。form属性值是表单的id,formaction的属性值是传递路径。
<!-- __CONTROLLER__/delAll 是thinkphp框架中控制器的路径,这里只需填写您的处理程序的路径即可 -->
<input type="submit" form="myform" formaction="__CONTROLLER__/delAll" value="批量删除" class="btn btn-primary btn2"/>
<input type="submit" form="myform" formaction="__CONTROLLER__/sort" value="更新排序" class="btn btn-primary btn2"/>
jquery
首先设置点击提交按钮时利用id获取到form标签,然后再把属性值改为需要传递的处理程序的地址。
$("#submit_id").click(function(){
//在1.6以上的jquery中不在使用attr()方法,而是有新的prop()方法代替
if($("#form_id").prop("action")){
$("#form_id").prop("action","__CONTROLLER__/sort");
}
});