docs/form/select.md
<h2 id="normal" lay-toc="{}">普通选择框</h2> <pre class="layui-code" lay-options="{preview: true, layout: ['preview', 'code'], tools: ['full'], done: function(obj){ obj.render(); }}"> <textarea> <div class="layui-form layui-row layui-col-space16"> <div class="layui-col-md6"> <select> <option value="">请选择</option> <option value="AAA">选项 A</option> <option value="BBB">选项 B</option> <option value="CCC">选项 C</option> </select> </div> <div class="layui-col-md6"> <select> <option value="">请选择</option> <option value="AAA">选项 A</option> <option value="BBB">选项 B</option> <option value="CCC" selected>选项 C</option> </select> </div> <div class="layui-col-md6"> <select disabled> <option value="">禁用选择框</option> <option value="AAA">选项 A</option> <option value="BBB">选项 B</option> <option value="CCC">选项 C</option> </select> </div> <div class="layui-col-md6"> <select> <option value="">请选择</option> <option value="AAA">选项 A</option> <option value="BBB" disabled>选项 B(禁用选项)</option> <option value="CCC">选项 C</option> </select> </div> </div> <!-- import layui --> </textarea> </pre>选择框组件是对
<select>元素的美化替代,延续了原有的特性,且加入了搜索等扩展。
value 为空,通常只作为选择框提示性引导;若第一项 value 不为空,则作为默认选中项。selected 属性优先设置默认选中项。<select> 或 <option> 标签设置 disabled 可禁用整个选择框或某个选项。在 <select> 标签上同样支持设置表单的其他公共属性(#详见)。
通过 <optgroup> 标签给选择框分组
在 <select> 元素上设置 lay-search 可开启选择框的搜索功能,如:lay-search="{caseSensitive:false, fuzzy: false}",支持的可选项如下:
caseSensitive:是否区分大小写,默认值 falsefuzzy:是否开启模糊匹配,设置 true 开启后将忽略匹配字符出现在字符串中的位置。默认值 false在 <select> 元素上设置 lay-creatable="" 可允许创建新的 option,需开启 lay-search 后生效。
在 <select> 元素中设置 lay-append-to="body" 属性,可将 select 面板插入到 <body> 根节点下,以便让选择框从 form 结构中剥离,成为更灵活的独立选择框。借助该特性,可完美解决 select 在 table, layer 等组件中使用的若干问题。
参考 table 示例: 实现多样化编辑
form.on('select(filter)', callback);
select 为选择框事件固定名称filter 为选择框元素对应的 lay-filter 属性值该事件在选择框选项选中后触发。
<pre class="layui-code" lay-options="{preview: true, layout: ['code', 'preview'], tools: ['full'], done: function(obj){ obj.render(); }}"> <textarea> <div class="layui-form"> <select lay-filter="demo-select-filter"> <option value="">请选择</option> <option value="AAA">选项 A</option> <option value="BBB">选项 B</option> <option value="CCC">选项 C</option> </select> </div> <!-- import layui --> <script> layui.use(function(){ var form = layui.form; var layer = layui.layer; // select 事件 form.on('select(demo-select-filter)', function(data){ var elem = data.elem; // 获得 select 原始 DOM 对象 var value = data.value; // 获得被选中的值 var othis = data.othis; // 获得 select 元素被替换后的 jQuery 对象 layer.msg(this.innerHTML + ' 的 value: '+ value); // this 为当前选中 <option> 元素对象 }); }); </script> </textarea> </pre>