一个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. 前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏

    一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...

  2. hibernate Restrictions用法 HibernateTemplate Hibernate结合spring

    常用方法 http://www.jb51.net/article/41541.htm ........................................... 博客分类: Hiberna ...

  3. AtCoder Regular Contest 075 2017年6月4日 C、D、E题解

    http://arc075.contest.atcoder.jp/assignments 昨晚做的atcoder,今天写个简单题解. F题不会做,800point的,就跪了,要等zk大佬来做.zk能做 ...

  4. (转)linux实战考试题:批量创建用户和密码-看看你会么?

    老男孩教育第五关实战考试题:批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell的循环(例如:for,while等),只能用linux命令及管道实现. 方法1:[roo ...

  5. css:hover伪类的使用

    :hover的使用,即当鼠标指针移入元素时,所做出的样式设置 示例一 <!DOCTYPE html> <html lang="en"> <head&g ...

  6. [选择排序] 时间复杂度O(n^2)

    思路:从未排序的序列中,找到最小的元素,放到序列的起始位置, 再从剩下没排序的里面,找到最小的,放到已经排序的末尾. 原地操作几乎是选择排序的唯一优点,当空间复杂度要求较高时,可以考虑选择排序:实际适 ...

  7. SQL SEVER数据库重建索引的方法

    一.查询思路 1.想要判断数据库查询缓慢的问题,可以使用如下语句,可以列出查询语句的平均时间,总时间,所用的CPU时间等信息 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  8. HTML页面右键事件

    <script type="text/javascript"> <!-- document.onmousedown = function (e) { var e ...

  9. HDU 4055 Number String(DP计数)

    题意: 给你一个含n个字符的字符串,字符为'D'时表示小于号,字符为“I”时表示大于号,字符为“?”时表示大小于都可以.比如排列 {3, 1, 2, 7, 4, 6, 5} 表示为字符串 DIIDID ...

  10. win10中使用win7/win8.1"个性化"

    直接下载使用: 点此下载 设置 Windows Registry Editor Version 5.00 ; ; Created by http://winaero.com, reedited by ...