在写添加用户时,以layui开关作为用户是否启用,在传值时,提交的开关值始终为'on'
form.on('switch(switchTest)', function(data){
var status = this.checked ? '1' : '0';
$('#status').attr("value", status);
layer.msg('状态:'+ status, {
offset: '6px'
});
});
网上找了很多代码去修改的它的默认值都没有用
最终解决方法
<input type="checkbox" checked="" name="status" value="0" id="status" lay-skin="switch" lay-filter="switchTest" lay-text="启用|禁用"
在input里面加入默认值 value='0',就完美解决,不加化无论js怎么修改都没有用。
过了几天发现没有用
<div class="layui-input-block">
<input type="checkbox" checked="" value='0' name="status" id="status" lay-skin="switch" lay-filter="switchTest" lay-text="开启|禁用">
</div>
只要checked没有被选中,是不会传值到后端的,始终为NULL
所以最最最终解决办法来了
···
form.on('switch(switchTest)', function (data) {
// var status = this.checked ? '0' : '-1';
data.elem.checked = true;//强制将checkbox为checked,否则会传值NULL
var isLockVal = $("#status").val();
isLockVal == '0' ? $("#status").val('1') : $("#status").val('0');//修改值
isLockVal == '0' ? $("#status").next().prop("class", "layui-unselect layui-form-switch ")
: $("#status").next().prop("class", "layui-unselect layui-form-switch layui-form-onswitch");//修样式
});
layer.msg('状态:' + isLockVal, {
offset: '6px'
});
···
感谢这位大佬:https://blog.csdn.net/qq_36973625/article/details/83343361