<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>table下拉选择器</title> <link rel="stylesheet" href="../lib/layui-v2.6.3/css/layui.css" media="all"> <link rel="stylesheet" href="../css/public.css" media="all"> </head> <body> <div class="layuimini-container"> <div class="layuimini-main"> <blockquote class="layui-elem-quote"> table下拉选择器使用开源项目:TableSelect<br> 在开源的基础上修改支持多条件搜索、宽以及高的自定义<br> <a href="https://gitee.com/lolicode/layui_component_tableselect" target="_blank" class="layui-btn layui-btn-danger">TableSelect</a> </blockquote> <form class="layui-form" action="" style="padding:20px;"> <div class="layui-form-item"> <label class="layui-form-label">多选</label> <div class="layui-input-inline"> <input type="text" name="" placeholder="请输入" autocomplete="off" class="layui-input" id="demo" value="刘晓军,张恒" ts-selected="002,003"> </div> <div class="layui-form-mid layui-word-aux">本地演示数据,分页选中和其他页一样,这不是BUG</div> </div> <div class="layui-form-item"> <label class="layui-form-label">单选</label> <div class="layui-input-inline"> <input type="text" name="" placeholder="请输入" autocomplete="off" class="layui-input" id="demo2"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">多搜索条件</label> <div class="layui-input-inline"> <input type="text" name="" placeholder="请输入" autocomplete="off" class="layui-input" id="demo3"> </div> </div> </form> <pre class="layui-code"> //开始使用 var tableSelect = layui.tableSelect; tableSelect.render({ elem: '#demo', //定义输入框input对象 必填 checkedKey: 'id', //表格的唯一建值,非常重要,影响到选中状态 必填 searchKey: 'keyword', //搜索输入框的name值 默认keyword searchPlaceholder: '关键词搜索', //搜索输入框的提示文字 默认关键词搜索 height:'400', //自定义高度 width:'900', //自定义宽度 table: { //定义表格参数,与LAYUI的TABLE模块一致,只是无需再定义表格elem url:'', cols: [[]] }, done: function (elem, data) { //选择完后的回调,包含2个返回值 elem:返回之前input对象;data:表格返回的选中的数据 [] //拿到data[]后 就按照业务需求做想做的事情啦~比如加个隐藏域放ID... } }) //默认值 只需要在触发input上添加 ts-selected="1,2,3" 属性即可 值需与checkedKey对应 //多条件搜索 tableSelect.render({ elem: '#demo3', checkedKey: 'id', searchType: 'more', //开启多条件搜索 searchList: [ {searchKey: 'name', searchPlaceholder: '搜索用户姓名'}, //搜索条件1 {searchKey: 'sex', searchPlaceholder: '搜索用户性别'}, //搜索条件2 ], table: { url: '../api/tableSelect.json', cols: [[ { type: 'radio' }, { field: 'id', title: '编号' }, { field: 'username', title: '姓名' }, { field: 'sex', title: '性别' } ]] }, done: function (elem, data) { //选择完后的回调,包含2个返回值 elem:返回之前input对象;data:表格返回的选中的数据 [] //拿到data[]后 就按照业务需求做想做的事情啦~比如加个隐藏域放ID... } }) </pre> </div> </div> <script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="../js/lay-config.js?v=1.0.4" charset="utf-8"></script> <script> layui.use(['table', 'form', 'tableSelect'], function () { var $ = layui.jquery, table = layui.table, form = layui.form, tableSelect = layui.tableSelect; tableSelect.render({ elem: '#demo', searchKey: 'my', checkedKey: 'id', searchPlaceholder: '自定义文字和name', table: { url: '../api/tableSelect.json', cols: [[ { type: 'checkbox' }, { field: 'id', title: '编号', width: 100 }, { field: 'username', title: '姓名', width: 300 }, { field: 'sex', title: '性别', width: 100 } ]] }, done: function (elem, data) { var NEWJSON = [] layui.each(data.data, function (index, item) { NEWJSON.push(item.username) }) elem.val(NEWJSON.join(",")) } }) tableSelect.render({ elem: '#demo2', checkedKey: 'id', table: { url: '../api/tableSelect.json', cols: [[ { type: 'radio' }, { field: 'id', title: '编号' }, { field: 'username', title: '姓名' }, { field: 'sex', title: '性别' } ]] }, done: function (elem, data) { var NEWJSON = [] layui.each(data.data, function (index, item) { NEWJSON.push(item.username) }) elem.val(NEWJSON.join(",")) } }) tableSelect.render({ elem: '#demo3', checkedKey: 'id', height:'400', width:'900', searchType: 'more', searchList: [ {searchKey: 'name', searchPlaceholder: '搜索用户姓名'}, {searchKey: 'sex', searchPlaceholder: '搜索用户性别'}, ], table: { url: '../api/tableSelect.json', cols: [[ { type: 'radio' }, { field: 'id', title: '编号' }, { field: 'username', title: '姓名' }, { field: 'sex', title: '性别' } ]] }, done: function (elem, data) { var NEWJSON = [] layui.each(data.data, function (index, item) { NEWJSON.push(item.username) }) elem.val(NEWJSON.join(",")) } }) }); </script> </body> </html>