Layui一直是波波非常喜爱的一个前端框架,通过这个框架可以很快的构建后端页面。本篇笔记主要记录下layui框架的switch组件在POST请求中数据为空的情况。
原HTML代码部分:
- <div class="layui-form-item">
- <label class="layui-form-label">运行状态</label>
- <div class="layui-input-inline">
- <input type="checkbox" name="status_switch" lay-skin="switch" lay-text="运行|停止" lay-filter="status_switch" {if $vo.status eq 1}checked{/if}>
- <input type="hidden" name="status" value="{$vo.status|default='0'}" >
- </div>
- </div>
问题描述:
post提交表单时,打印接收的数据不含_POST["status"];即使input框包含value值,提交表单后后端也获取不到。
解决办法:
1、如HTML代码部分所示,在switch开关组件下方增加一个隐藏的input框,name="status"。
2、页面底部添加JS代码。
- window.form.render('checkbox');
- layui.use(['form','jquery'],function (){
- var form = layui.form;
- var $ = layui.jquery;
- form.on('switch(status_switch)',function (data){
- if(data.elem.checked){
- $("input[name='status']").val('1');
- }else{
- $("input[name='status']").val('0');
- }
- })
- })
第一行代码的作用是部分渲染form表单。 代码到此问题得以解决。