layui中table.reload使用中的坑

辛建业
2023-12-01

问题描述:

列表页中的头部搜索框含“搜索”和“删除”,其中“删除”是将该搜索表单清空,重新查询,但是使用table.reload时上次的查询条件还是在请求参数里面,去不掉~

问题原因:

如果多次reload的话,查询的参数会累加,也就是reload的时候都会携带上次查询参数

解决方案

//清除
form.on('submit(cleanup)', function () {
    $(".layui-form-search")[0].reset();//清空form表单
    /* $(".layui-form-search").find('input[type=text],select,input[type=hidden]').each(function() {
        $(this).val('');
     });*/
   //$(':input','.layui-form-search').not(':button,:submit,:reset,:hidden').val('').removeAttr('checked').removeAttr('checked')
    setTimeout(function(){
        table.reload('list', { //表格的id
            page: {
                curr: 1 //重新从第 1 页开始
            },
            where:null 
        });
    },800);
    table.render();
    return false;//这里是拦截layui自带的提交
});

或者利用table的实例化对象来reload重载表格

//tableIns 即为当前表格渲染返回的对象
var tableIns = table.render({
  elem: '#id'
  ,cols: [] //设置表头
  ,url: '/api/data' //设置异步接口
  ,id: 'idTest'
}); 
 
tableIns.reload({
  where: { //设定异步数据接口的额外参数,任意设
    aaa: 'xxx'
    ,bbb: 'yyy'
    //…
  }
  ,page: {
    curr: 1 //重新从第 1 页开始
  }
});

参考文章
1、https://gitee.com/sentsin/layui/issues/IRS79
2、有关使用jQuery重置表单的方法
https://blog.csdn.net/u013066244/article/details/52862320

 类似资料: