一个form表单多个submit

在平时项目开发过程中,经常会遇到一个form表单对应多个submit提交的情况,那么 ,这种情况应该怎么解决呢,也很简单,这时候就不能用submit来提交了,可以通过js的点击事件来触发提交

格式如下:

 <form name="demo" method="post">
<!--YOUR DATA AREA-->
<input type="button" value="添加" onclick="addAction()">
<input type="button" value="删除" onclick="deleteAction()">
<input type="button" value="保存" onclick="saveAction()">
<input type="button" value="查询" onclick="searchAction()">
</form> <script type="text/javascript">
function addAction(){
document.demo.action="your add method url";
document.demo.submit();
} function deleteAction(){
document.demo.action="your delete method url";
document.demo.submit();
} function saveAction(){
document.demo.action="your add save url";
document.demo.submit();
} function searchAction(){
document.demo.action="your serach method url";
document.demo.submit();
}
</script>

特别提醒的是:form表单一定要添加上name属性,以通过document定位访问表单,不要写action属性了

实例如下:

摘自cmf后台的一段代码

 <include file="public@header" />
<include file="public@img" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a>评论管理</a></li>
</ul>
<form name="demo" method="post" action="{:url('Comment/index')}">
<div class="well form-inline margin-top-20">
是否显示:
<select name="status" class="form-control">
<option value="2">请选择...</option>
<foreach name="statuses" item="val" key="k">
<option value="{$k}" <if condition="$status eq $k">selected</if>>{$val}</option>
</foreach>
</select>
关键字:
<input type="text" class="form-control" name="keyword" style="width: 200px;"
value="{:input('request.keyword')}" placeholder="请输入关键字...">
<input type="button" class="btn btn-primary" value="搜索" onclick="searchAction()"/>
<input type="hidden" name="is_order" id="order" value="0">
<a class="btn btn-danger" href="{:url('Comment/index')}">清空</a>
</div>
<!--</form>-->
<!--<form method="post" class="js-ajax-form" action="{:url('Comment/listOrder')}">-->
<div class="table-actions">
<button type="button" class="btn btn-primary btn-sm js-ajax-submit" onclick="orderAction()">{:lang('SORT')}</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="60">排序</th>
<th width="50">ID</th>
<th width="200">商品</th>
<th width="50">logo</th>
<th width="180">用户</th>
<th width="50">头像</th>
<th width="60">星级</th>
<th>评论内容</th>
<th width="140">评论时间</th>
<th width="80">状态</th>
<th width="180">操作</th>
</tr>
</thead>
<tbody>
{$comment_tree}
</tbody>
</table>
<ul class="pagination">{$page|default=''}</ul>
</form>
</div>
<script src="__STATIC__/js/admin.js"></script>
<script>
function orderAction(){
$('#order').val(1);
document.demo.action="{:url('Comment/index')}";
document.demo.submit();
};
function searchAction(){
document.demo.action="{:url('Comment/index')}";
document.demo.submit();
}
</script>
</body>
</html>

备注:在这里分两次点击事件进入同一方法,又在该方法中根据$order的值,来区分该次提交是来自哪个事件,因为业务逻辑都一样,只不过排序操作增加一步更新排序的功能,所以把排序方法和搜索方法放在了一起

一个form表单对应多个submit的更多相关文章

  1. 数据表格,查询、导出共用一个form表单,实现文件流方式下载

    在开发中遇到问题是这样的: 在维护老的管理系统的过程中,老板说让加导出功能:项目中,查询的筛选条件是用的表单提交的方式写的. 解决方案有两种: 一.用ajax方式导出 var array = $('# ...

  2. JavaScript 创建一个 form 表单并提交

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  3. 直接提交一个form表单后台返回一个新页面通过target属性可以放到iframe当中

    问题描述: 我想提交一个form表单后台直接返回一个新页面,但是当前页面还不想被替换掉: 解决方案: 在页面中添加一个iframe将form表单的target属性设置为iframe的id这样的话返回的 ...

  4. 获取html 中的内容 将前台的数据获取到后台 用 jquery 生成一个 form表单 提交数据

    使用js创建一个form表单 ,使用post上传到后台中 下面是代码.在获取html内容的时候使用了js节点来获取内容. parent:父节点.上一级的节点 siblings:兄弟节点.同一级别的节点 ...

  5. Vue + Element-ui实现后台管理系统(5)---封装一个Form表单组件和Table表格组件

    封装一个Form表单组件和Table组件 有关后台管理系统之前写过四遍博客,看这篇之前最好先看下这四篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-syste ...

  6. 如何为form表单的button设置submit事件

    若button按钮没有type属性,浏览器默认按照type=submit逻辑处理,这样若将没有type的button放在form表单中,点击按钮就会执行form表单提交

  7. HTML:一个form表单有两个按钮,分别提交到不同的页面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 遇到的一个Form表单自动提交问题解决办法

    Form 表单中只有一个 input 元素时按回车会默认提交表单.有的时候我们希望按回车可以进行列表查询,但是查询后表单被自动提交了,然后刷新了整个页面.这个时候就需要对这个 Form 表单处理一下以 ...

  9. 一个Form表单多个Submit提交按钮!实现提交不同的参数!

    给 submit 的按钮加onclick 方法来自定义预处理参数,比如<script type="text/javascript">function submitFun ...

随机推荐

  1. C# 多线程程序隐患

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. 【aspnetcore】添加自定义json配置文件

    打开program.cs文件,修改CreateWebHostBuilder方法: public static IWebHostBuilder CreateWebHostBuilder(string[] ...

  3. Jenkins+Gitlab+Ansible自动化部署(六)

    Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs. ...

  4. 2015博客升级记(五):CentOS 7.1编译安装PHP7

    https://typecodes.com/web/centos7compilephp7.html

  5. spring事务的开启方式(编程式和声明式)

    1.编程式事务:编码方式实现事务管理(代码演示为JDBC事务管理) Spring实现编程式事务,依赖于2大类,分别是上篇文章提到的PlatformTransactionManager,与模版类Tran ...

  6. Easy UI 关联表的字段展示

    刚接触的easy UI ,发现展示关联表的字段的时候,卡住了 好一段时间,后来通过qq群询问,终于得到答案 实体Record public class Record:Base { public Gui ...

  7. bt5r3开启远程登录

    sshd-generate /etc/init.d/ssh restart

  8. 升级CentOS内核 - 2.6升级到3.10/最新内核

    ##记得切换到root用户执行升级操作. [root@localhost ~]# uname -a ##旧版 Linux localhost.localdomain 2.6.32-279.el6.i6 ...

  9. python中的构造函数和构造函数和析构函数的作用

    构造函数和构造函数和析构函数都属于python中的特殊方法 其中的“__del__”就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数,另外当对象在某个作用域中调用完毕,在跳出其作用 ...

  10. UVA 12405 Scarecrow (基础DP)

    题意: 给出一个1*N的矩阵(就是一行的格子),其中部分格子可以有草,部分无草,现在要求放置一些稻草人在某些格子上,每个稻草人可以覆盖3个连续格子,为使得有草的格子都能被覆盖,问最少放置几个稻草人. ...