表格查询-基础

## onion.form_search ### 1. 功能 数据表格的内容搜索 ### 2. 使用场景 需要定向查询数据表格内容时使用 ![image.png](https://cos.easydoc.net/27100029/files/kbgapr1n.png) ### 3. 如何使用 #### 3.1 HTML 页面模板 ```html <!--注意表单命名--> <form action="" class="layui-form " lay-filter="searchForm" id="searchForm"> <!-- 表单输入 --> <div class=" toolbox pl10 pr10 pb10"> <div class="layui-row"> <div class="layui-col-xs12 layui-col-sm6 layui-col-md3 mt10"> <label class="layui-form-label">名称:</label> <div class="layui-input-block"> <input class="layui-input" name="name" placeholder="请输入名称"> </div> </div> </div> </div> <!-- 表单按钮栏 --> <div class="toolbox pt10 pb10"> <!-- 搜索按钮 --> <button class="layui-btn ml10 layui-btn-radius" lay-submit lay-filter="search"> <i class="layui-icon">&#xe615;</i>搜索 </button> <!-- 其余工具按钮 --> <button class="layui-btn limitBtn" limitname="page1:page2:toolName" lay-submit lay-filter="toolOne"> <i class="layui-icon">&#xe655;</i>工具按钮一 </button > </div> </form> ``` #### 3.2 JS 页面模板 ```js onion.form_search(form, myTable, 'search', 'searchForm') ``` 1. `form` 为 全局变量 `var form = onion.form;`, 一般固定 2. `myTable` 为数据表格名称, 一般固定 3. `'search'` 为按钮的绑定事件, 建议按页面功能做修改 ![image.png](https://cos.easydoc.net/27100029/files/kb8pnxpi.png) 4. `'searchForm'` 为输入查询内容的表单名 ![image.png](https://cos.easydoc.net/27100029/files/kb8pp67f.png) 5. `options`: 成功后, 是否清空查询条件, 默认 false 6. `myFields`: 自定义的查询条件, 非用户输入, object 形式传入 7. `callback`: 回调函数 ### 4. api定义 ``` javascript onion.form_search = function (form, table, id, formId, options, myFields, callback, selectField) { var isClearFields = false; if (typeof (options) === 'boolean') { isClearFields = options; } form.on('submit(' + id + ')', function (data) { var fields = data.field; fields = onion.filter(fields); // 处理多选的情况 if (typeof (selectField) === 'object') { for (var key in fields) { if (fields.hasOwnProperty(key)) { if (selectField[key]) { if (fields[key].indexOf(',') > -1) { fields[key] = fields[key].split(','); } else { fields[key] = [fields[key]]; } } else { if (fields[key].indexOf(',') > -1) { fields[key] = fields[key].split(','); } } } } } else { for (var key in fields) { if (fields.hasOwnProperty(key)) { if (fields[key].indexOf(',') > -1) { fields[key] = fields[key].split(','); } } } } var currentOpts = $.extend({}, onion.getFilters(fields), myFields); if (typeof (options) === 'string') { var myConfig = { url: options, where: currentOpts, page: { curr: 1 } } } else { var myConfig = { where: currentOpts, page: { curr: 1 } } } table.reload(myConfig); callback && callback(); // 查询之后,是否清空查询条件,如果需要就解除注释就可以了 if (isClearFields) { for (var key in fields) { fields[key] = ''; } form.val(formId, fields); } return false; }) } ```