Layui开关使用

在Jsp列表页面使用layui开关

  1. 功能介绍:
    使用layui开关控制一条数据的状态。0:表示启用 1:表示禁用。

  2. 后台框架
    SpringMVC+Mybatis

  3. 后台页面
    Jsp页面

  4. 功能展示
    在这里插入图片描述

  5. 代码实现
    前台:

<tbody>
		<c:forEach items="${resultMap.result.records }" var="r">
				<tr>
					<td>
						<input type="checkbox" name="ids" lay-skin="primary">
					</td>
					<td>${r.code }</td>
					<td>${r.payments }</td>
					<td>${r.raised }</td>
					<td>${r.createTime }</td>
					<td>
						<input type="checkbox" value="0" name="state" lay-skin="switch" lay-text="启用|禁用" ${r.state eq '0' ? 'checked': '' }>
						<input type="hidden" id="kaigID" value="${r.id }" />
					</td>
				</tr>
			</c:forEach>
		</tbody>

前台JS:

<script>
		layui.use('form', function() {
			var form = layui.form; //表单
			form.on('switch', function(data) {
				console.log(data.elem.checked); //开关是否开启,true或者false
				console.log(data.value); //开关value值,也可以通过data.elem.value得到
				var id = $(data.othis).next("input").val();
				if(data.elem.checked == true) {
					$.ajax({
						type: "post",
						async: false,
						data: "id=" + id + "&state=" + 0,
						url: "changeState",
						success: function(data) {
							flag = data
						},
					});
					if(flag == "Ny") {
						layer.msg("启用状态数不超过三个!");
					} else {
						layer.msg("已启用!");
					}
				} else {
					$.ajax({
						type: "post",
						async: false,
						data: "id=" + id + "&state=" + 1,
						url: "changeState",
						success: function(data) {
							flag = data
						},
					});
					if(flag == "yes") {
						layer.msg("已禁用!");
					}  
				}

			});
		})
	</script>

(layui官方文档)开关被点击时触发,回调函数返回一个object参数,携带两个成员:

form.on('switch(filter)', function(data){
  console.log(data.elem); //得到checkbox原始DOM对象
  console.log(data.elem.checked); //开关是否开启,true或者false
  console.log(data.value); //开关value值,也可以通过data.elem.value得到
  console.log(data.othis); //得到美化后的DOM对象
});  

需要引入的js

<script src="layui/layui.js></script>

功能逻辑:
当点击开关时,js获取当前数据的ID,layui开关监听事件,会返回true/false,我的功能实现是当返回true时,状态设置为0,携带ID和状态码使用Ajax传给后台处理,反之为false时,状态设置为1

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在layui开关中提交表单,你可以使用layui的form模块和switch开关组件结合起来。首先,确保你已经引入了layui的相关文件。 然后,你可以使用下面的代码示例来实现: HTML代码: ```html <form class="layui-form" action="" lay-filter="formDemo"> <div class="layui-form-item"> <label class="layui-form-label">开关</label> <div class="layui-input-block"> <input type="checkbox" name="switch" lay-skin="switch" lay-text="ON|OFF" lay-filter="switchDemo"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="submitDemo">提交</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> ``` JavaScript代码: ```javascript // layui表单模块初始化 layui.use('form', function(){ var form = layui.form; // 监听开关的状态变化事件 form.on('switch(switchDemo)', function(data){ // 如果开关状态为开启 if(data.elem.checked){ // 提交表单 form.on('submit(submitDemo)', function(){ // 表单提交的逻辑处理 // ... return false; // 阻止表单跳转 }); } else{ // 关闭开关时,取消表单提交事件 form.off('submit(submitDemo)'); } }); }); ``` 这样,当你打开开关时,点击提交按钮会触发表单提交事件,你可以在其中处理表单数据的提交逻辑。当关闭开关时,提交按钮将不会触发表单提交事件。 注意:上述代码中的lay-filter属性可以自定义,但需要保持一致性。另外,你可能还需要自行处理表单数据的收集和提交方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值