xm-select是基于layui的多选解决方案,前身formSelects, 由于渲染速度慢, 代码冗余, 被放弃了xm-select使用了新的开发方式, 利用preact进行渲染, 大幅度提高渲染速度, 并且可以灵活拓展。
下载地址:
xm-select: 基于Layui, 下拉选择框的多选解决方案

通过一个简单的小例子,看看如何使用xm-select.js

第一步: 下载

第二步: 引入 xm-select.js

第三步: 写一个容器

<div id="demo1"></div>

第四步: 渲染

var demo1 = xmSelect.render({
    el: '#demo1',
    language: 'zn',
    data: [
        {name: '勾股CMS', value: 1},
        {name: '勾股OA', value: 2},
        {name: '勾股DEV', value: 3}
    ]
})

复制

配置项与方法

参数说明类型可选值默认值
el渲染对象css选择器dom元素string
language语言选择stringzn / enzn
data显示的数据array-[ ]
content自定义下拉框htmlstring--
initValue初始化选中的数据, 需要在data中存在array-null
tips默认提示, 类似于placeholderstring-请选择
empty空数据提示string-暂无数据
filterable是否开启搜索booleantrue / falsefalse
searchTips搜索提示string-请选择
delay搜索延迟msint-500
filterMethod搜索回调函数function(val, item, index, prop) val: 当前搜索值, item: 每个option选项, index: 位置数据中的下标, prop: 定义key--
filterDone搜索完成函数function(val, list) val: 当前搜索值, list: 过滤后的数据--
remoteSearch是否开启自定义搜索 (远程搜索)booleantrue / falsefalse
remoteMethod自定义搜索回调函数function(val, cb, show, pageIndex) val: 当前搜索值, cb(arr, totalPage): 回调函数, 需要回调一个数组, 结构同data, 远程分页需要第二个参数: 总页码, show: 下拉框显示状态, pageIndex: 分页下当前页码--
direction下拉方向stringauto / up / downauto
style自定义样式object-{ }
height默认最大高度string-200px
paging是否开启自定义分页booleantrue / falsefalse
pageSize分页条数int-10
pageEmptyShow分页无数据是否显示booleantrue / falsetrue
pageRemote是否开启远程分页booleantrue / falsetrue
radio是否开启单选模式boolean true / falsefalse
repeat是否开启重复性模式booleantrue / falsefalse
clickClose是否点击选项后自动关闭下拉框booleantrue / falsefalse
prop自定义属性名称, 具体看下表object-
theme主题配置, 具体看下表object--
model模型, 多选的展示方式, 具体见下表object-
iconfont自定义选中图标object-
show展开下拉的回调function--
hide隐藏下拉的回调function--
template自定义渲染选项function({ item, sels, name, value })--
on监听选中变化function({ arr, change, isAdd })--
max设置多选选中上限int-0
maxMethod达到选中上限的回到function(sels, item), sels: 已选中数据, item: 当前选中的值--
name表单提交时的namestring-select
layVerify表单验证, 同layui的lay-verifystring-‘’
layVerType表单验证, 同layui的lay-verTypestring-‘’
layReqText表单验证, 同layui的lay-reqTextstring-‘’
toolbar工具条, 具体看下表object--
showCount展示在下拉框中的最多选项数量int-0
enableKeyboard是否启用键盘操作选项booleantrue / falsetrue
enableHoverFirst是否默认选中第一项booleantrue / falsetrue
selectedKeyCode选中的键盘KeyCodeint全部KeyCode, 也可xmSelect.KeyCode.Enter,xmSelect.KeyCode.Space13
autoRow是否开启自动换行(选项过多时)booleantrue / falsefalse
size尺寸stringlarge / medium / small / minimedium
disabled是否禁用多选boolean true / falsefalse
create创建条目function(val, data), val: 搜索的数据, data: 当前下拉数据-null
tree树形结构, 具体看下表object--
cascader级联结构, 具体看下表object--
submitConversion配置表单提交数据function(sels, prop), sels: 已选中数据, prop: 自定义的prop--
done渲染完成回调function-
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐