表格查询-基础
## onion.form_search
### 1. 功能
数据表格的内容搜索
### 2. 使用场景
需要定向查询数据表格内容时使用

### 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"></i>搜索
</button>
<!-- 其余工具按钮 -->
<button class="layui-btn limitBtn" limitname="page1:page2:toolName" lay-submit lay-filter="toolOne">
<i class="layui-icon"></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'` 为按钮的绑定事件, 建议按页面功能做修改

4. `'searchForm'` 为输入查询内容的表单名

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;
})
}
```