Layui同一个表单中放置两个按钮,提交问题

 今天做项目遇到了这个问题,看到layui社区有人问,但没有答案,自己就想了一个办法:

原理:用两个按钮,一个按钮设置提交方式为Post,一个为Get,这样你就可以通过控制器端不同的接受请求方式,来实现不同的业务

核心代码如下:

页面上默认写写post请求:

第一个按钮post请求:

<form class="layui-form layui-form-pane1" action="/superVision/toAddSuperVision" method="post" lay-filter="first">   

对应的按钮“发起督办”:<button class="layui-btn" lay-submit lay-filter="first">发起督办</button>

点击发起督办,执行的是post请求。

第二个按钮get请求:

只需要加上这个:formmethod="get",你点击之后他就会将请求方式变为get请求
 <button class="layui-btn2" lay-submit lay-filter="second" formmethod="get">存为草稿</button>

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="utf-8">
 <title>发起督办</title>
 <meta name="renderer" content="webkit">
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
 <link rel="stylesheet" th:href="@{../layui/css/layui.css}" media="all">
<link href="favicon.ico" rel="shortcut icon">
</head>
<script th:src="@{../layui/layui.js}" charset="utf-8"></script>
<body>
<form class="layui-form layui-form-pane1" action="/superVision/toAddSuperVision" method="post" lay-filter="first">	
  <div class="layui-form-item">
    <label class="layui-form-label">督办标题</label>
    <div class="layui-input-block">
      <input type="text" name="svTitle" lay-verify="title" autocomplete="off" placeholder="请输入督办标题" class="layui-input">
  </div>
  </div>
   <div class="layui-form-item layui-form-text">
    <label class="layui-form-label">督办内容</label>
    <div class="layui-input-block">
      <textarea placeholder="请输入内容" class="layui-textarea" name="svContent"></textarea>
    </div>
  </div>
  <div class="layui-form-item">
    <label class="layui-form-label">部门类型</label>
    <div class="layui-input-block">
       <select name="did" lay-filter="aihao"> 
        <option th:each="dept,userStat:${depts}" th:value="${dept?.did}" th:text="${dept?.dname}"></option>
      </select> 
    </div>
  </div>
  <div class="layui-form-item">
    <label class="layui-form-label">督查类型</label>
    <div class="layui-input-block">
       <select name="sid" lay-filter="aihao"> 
        <option th:each="superVisionType,userStat:${superVisionTypes}" th:value="${superVisionType.sid}" th:text="${superVisionType.sname}"></option>
      </select> 
    </div>
  </div>
  <div class="layui-form-item">
    <label class="layui-form-label">开始时间</label>
  <div class="layui-inline">
	  <input type="text" name="startTime" class="layui-input" id="test6-1">
  </div>
  </div>
  <div class="layui-form-item">
    <label class="layui-form-label">签收时间</label>
  <div class="layui-inline">
	  <input type="text" name="confirmTime" class="layui-input" id="test6-3">
  </div>
  </div>
  <div class="layui-form-item">
    <label class="layui-form-label">结束时间</label>
	  <div class="layui-inline">
		  <input type="text" name="endTime" class="layui-input" id="test6-2">
	  </div>
  </div>
    <div class="layui-form-item">
    <label class="layui-form-label">通知分管领导</label>
    <div class="layui-input-block">
      <input type="radio" name="sendLeader" value="通知" title="通知">
      <input type="radio" name="sendLeader" value="不通知" title="不通知" checked>
    </div>
  </div>
  <div class="layui-form-item">
    <label class="layui-form-label">设置回复次数</label>
    <div class="layui-input-block">
      <select name="replices" >
      	<option value="1">请选择</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
      </select>
    </div>
  </div>
  <input type="hidden" name="state">
  <div class="layui-form-item">
    <div class="layui-input-block">
      <button class="layui-btn" lay-submit lay-filter="first">发起督办</button>
      <button class="layui-btn2" lay-submit lay-filter="second" formmethod="get">存为草稿</button>
      <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    </div>
  </div>
</form>
<script>
layui.use('laydate', function(){
  var laydate = layui.laydate;
  //自定义背景色主题
  laydate.render({
    elem: '#test6-2' //指定元素
    ,type: 'datetime'
    ,theme: '#393D49'
    //,range: true
    ,trigger: 'click'
  });
  //自定义背景色主题
  laydate.render({
    elem: '#test6-3' //指定元素
    ,type: 'datetime'
    ,theme: '#393D49'
    //,range: true
    ,trigger: 'click'
  });
  //自定义背景色主题
  laydate.render({
    elem: '#test6-1' //指定元素
    ,type: 'datetime'
    ,theme: '#393D49'
    //,range: true
    ,trigger: 'click'
  });
  
  
});

</script>
<script>
layui.use(['form', 'layedit', 'laydate'], function(){
  var form = layui.form
  ,layer = layui.layer
  ,layedit = layui.layedit
  ,laydate = layui.laydate;
  
  //日期
  laydate.render({
    elem: '#date'
  });
  laydate.render({
    elem: '#date1'
  });
  
  //创建一个编辑器
  var editIndex = layedit.build('LAY_demo_editor');
 
  //自定义验证规则
  form.verify({
    title: function(value){
      if(value.length < 5){
        return '标题至少得5个字符啊';
      }
    }
    ,pass: [
      /^[\S]{6,12}$/
      ,'密码必须6到12位,且不能出现空格'
    ]
    ,content: function(value){
      layedit.sync(editIndex);
    }
  });
  
  //监听指定开关
  form.on('switch(switchTest)', function(data){
    layer.msg('开关checked:'+ (this.checked ? 'true' : 'false'), {
      offset: '6px'
    });
    layer.tips('温馨提示:请注意开关状态的文字可以随意定义,而不仅仅是ON|OFF', data.othis)
  });
  
  //监听提交
  form.on('submit(demo1)', function(data){
    layer.alert(JSON.stringify(data.field), {
      title: '最终的提交信息'
    })
    return false;
  });
 
  //表单初始赋值
  form.val('example', {
    "username": "贤心" // "name": "value"
    ,"password": "123456"
    ,"interest": 1
    ,"like[write]": true //复选框选中状态
    ,"close": true //开关状态
    ,"sex": "女"
    ,"desc": "我爱 layui"
  })
  
  
});
</script>
</body>
</html>

控制器端处理:

@PostMapping("/toAddSuperVision")
	public String toAddSuperVision(SuperVision superVision,int sid,int did) {
		SupervisionType supervisionType=new SupervisionType();
		supervisionType.setSid(sid);
		superVision.setSupervisionType(supervisionType);
		
		Dept dept=new Dept();
		dept.setDid(did);
		superVision.setDept(dept);
		//发起督办时修改其状态为“已发起状态”
		SuperVisionState superVisionState=new SuperVisionState();
		System.out.println("设置状态为2");
		superVisionState.setStid(2);
		superVision.setSuperVisionState(superVisionState);
		superVisionService.save(superVision);
		return "superVision";
		
	}
	@GetMapping("/toAddSuperVision")
	public String toAddSuperVision1(SuperVision superVision,int sid,int did) {
		SupervisionType supervisionType=new SupervisionType();
		supervisionType.setSid(sid);
		superVision.setSupervisionType(supervisionType);
		Dept dept=new Dept();
		dept.setDid(did);
		superVision.setDept(dept);
		//发起督办时修改其状态为“已发起状态”
		SuperVisionState superVisionState=new SuperVisionState();
		System.out.println("设置状态为1");
		superVisionState.setStid(1);
		superVision.setSuperVisionState(superVisionState);
		superVisionService.save(superVision);
		return "superVision";
		
	}

通过请求方式的不同执行不同的业务。

我的问题解决了。。。但根本想解决还需要更好的方法

猜你喜欢

转载自blog.csdn.net/qq_40180411/article/details/85312889