layui的selectM.js多选插件 下拉多选框

素颜马尾好姑娘i 2021-09-16 18:58 1408阅读 0赞

采用layui的selectM.js多选插件 实现下拉多选框

实现步骤

  1. 下载layui的selectM.js多选插件

    1. 网址:https://fly.layui.com/extend/selectN,selectM/
  2. 将下载的文件添加到项目中

    1. ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzE1NDk0_size_16_color_FFFFFF_t_70][]
  3. 在jsp文件中引用 layui.js selectM.js layui.css 这3个文件

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzE1NDk0_size_16_color_FFFFFF_t_70 1

HTML代码:

  1. <form class="layui-form" method="post">
  2. <div class="layui-form-item">
  3. <label class="layui-form-label">多级1</label>
  4. <div id="cat_ids1">
  5. </div>
  6. </div>
  7. <div class="layui-form-item">
  8. <label class="layui-form-label">多级2</label>
  9. <div id="cat_ids2">
  10. </div>
  11. </div>
  12. <div class="layui-form-item">
  13. <label class="layui-form-label">多选1</label>
  14. <div class="layui-input-block" id="tag_ids1">
  15. </div>
  16. </div>
  17. <div class="layui-form-item">
  18. <label class="layui-form-label">多选2</label>
  19. <div class="layui-input-block" id="tag_ids2">
  20. </div>
  21. </div>
  22. <div class="layui-form-item" style="text-align:center;">
  23. <div class="layui-input-block">
  24. <button type="button" class="layui-btn" lay-submit="" lay-filter="demo">console.log</button>
  25. </div>
  26. </div>
  27. </form>
  28. <div id="btn-wrap">
  29. <button type="button" class="layui-btn set1">设置多级1</button>
  30. <button type="button" class="layui-btn set2">设置多选1</button>
  31. </div>

JS代码:

  1. <script>
  2. var tagData = [{"id":12,"name":"长者","status":0},{"id":13,"name":"工厂"},{"id":14,"name":"小学生"},{"id":15,"name":"大学生"},{"id":16,"name":"研究生"},{"id":17,"name":"教师"},{"id":18,"name":"记者"}];
  3. var catData = [{"id":1,"name":"周边旅游","children":[{"id":24,"name":"广东","status":0,"children":[{"id":7,"name":"广州"},{"id":23,"name":"潮州"}]}]},{"id":5,"name":"国内旅游","children":[{"id":8,"name":"华北地区","children":[{"id":9,"name":"北京"}]}]},{"id":6,"name":"出境旅游","children":[{"id":10,"name":"东南亚","children":[{"id":11,"name":"马来西亚","children":[{"id":20,"name":"沙巴","children":[{"id":21,"name":"美人鱼岛","children":[{"id":22,"name":"潜水"}]}]}]}]}]}];
  4. layui.config({
  5. base : './'
  6. }).extend({
  7. selectN: './layui_extends/selectN',
  8. selectM: './layui_extends/selectM',
  9. }).use(['layer','form','jquery','selectN','selectM'],function(){
  10. $ = layui.jquery;
  11. var form = layui.form
  12. ,selectN = layui.selectN
  13. ,selectM = layui.selectM;
  14. //无限级分类-基本配置
  15. var catIns1 = selectN({
  16. //元素容器【必填】
  17. elem: '#cat_ids1'
  18. ,search:[false,true]
  19. //候选数据【必填】
  20. ,data: catData
  21. });
  22. //无限级分类-所有配置
  23. var catIns2 = selectN({
  24. //元素容器【必填】
  25. elem: '#cat_ids2'
  26. //候选数据【必填】
  27. ,data: catData
  28. //设置了长度
  29. ,width:null
  30. //默认值
  31. ,selected: [6,10,11]
  32. //为真只取最后一个值
  33. ,last:true
  34. //空值项提示,可设置为数组['请选择省','请选择市','请选择县']
  35. ,tips: '请选择'
  36. //事件过滤器,lay-filter名 不设置与选择器相同(去#.)
  37. ,filter: ''
  38. //input的name 不设置与选择器相同(去#.)
  39. ,name: 'cat2'
  40. //数据分隔符
  41. ,delimiter: ','
  42. //数据的键名
  43. ,field:{idName:'id',titleName:'name',childName:'children'}
  44. //表单区分 form.render(type, filter); 为class="layui-form" 所在元素的 lay-filter="" 的值
  45. ,formFilter: null
  46. });
  47. //多选标签-基本配置
  48. var tagIns1 = selectM({
  49. //元素容器【必填】
  50. elem: '#tag_ids1'
  51. //候选数据【必填】
  52. ,data: tagData
  53. ,max:2
  54. ,width:400
  55. //添加验证
  56. ,verify:'required'
  57. });
  58. //多选标签-所有配置
  59. var tagIns2 = selectM({
  60. //元素容器【必填】
  61. elem: '#tag_ids2'
  62. //候选数据【必填】
  63. ,data: tagData
  64. //默认值
  65. ,selected: [12,17]
  66. //最多选中个数,默认5
  67. ,max : 6
  68. //input的name 不设置与选择器相同(去#.)
  69. ,name: 'tag2'
  70. //值的分隔符
  71. ,delimiter: ','
  72. //候选项数据的键名
  73. ,field: {idName:'id',titleName:'name'}
  74. });
  75. form.on('submit(demo)',function(data){
  76. console.log('catIns1 当前选中的值名:',catIns1.selected);
  77. console.log('catIns1 当前选中的值:',catIns1.values);
  78. console.log('catIns1 当前选中的名:',catIns1.names);
  79. console.log('catIns1 当前最后一个选中值:',catIns1.lastValue);
  80. console.log('catIns1 当前最后一个选中名:',catIns1.lastName);
  81. console.log('catIns1 当前最后一个是否已选:',catIns1.isSelected);
  82. console.log('');
  83. console.log('tagIns1 当前选中的值名:',tagIns1.selected);
  84. console.log('tagIns1 当前选中的值:',tagIns1.values);
  85. console.log('tagIns1 当前选中的名:',tagIns1.names);
  86. console.log('');
  87. var formData = data.field;
  88. console.log('表单对象:',formData);
  89. })
  90. //通过js动态选择
  91. $('.set1').click(function(){
  92. catIns1.set([6,10]);
  93. });
  94. //通过js动态选择
  95. $('.set2').click(function(){
  96. tagIns1.set([12,13,14,15]);
  97. });
  98. });
  99. </script>

原网址:https://fly.layui.com/extend/selectN,selectM/

发表评论

表情:
评论列表 (有 0 条评论,1408人围观)

还没有评论,来说两句吧...

相关阅读