在做到表单的提交的时候,如果是一个按钮提交的话,对应一个action。只需要将form表单属性method=”post” action=”action路径”。
可是如果是多个按钮,如何将一个表单与多个方法关联呢?
思路是这样的:先不指定表单的action,让action属性为"",method="post",为你的提交按钮全部替换为普通按钮,给它们都加上onclick事件,注意这里每一个按钮的onclick方法是一样的,只是传递的参数不一样,这里的参数只是起到标记是哪一个按钮的用。
最后根据onclick里的方法传递的参数不同,可以判断是来自哪一个按钮的消息,再为表单设置方法并提交。
这里有个案例(发布文章和将文章保存到草稿箱):
<form id="myFrm" action="" method="post">
文章标题:<input name="articleTitile"/><br/>
文章内容:<textarea name="articleContent"><br/>
<input type="button" value="发布文章" οnclick="test(1)"/><br/>
<input type="button value="保存到草稿箱" οnclick="test(2)"/>
</form>
<script type="text/javascript">
function test(val){
//判断参数
if(val==1){ //发布文章的方法
var url = "去到发布文章的Action";
var params = $("#myFrm").serialize();
//异步处理
$.post(url,params);
}
if(val==2){ //保存到草稿箱
var url = "去到草稿箱的Action";
var params = $("#myFrm").serialize();
//异步处理
$.post(url,params);
}
}
</script>