jQuery 级联选择框插件 级联

  • 源码大小:11.31KB
  • 所需积分:1积分
  • 源码编号:19JP-3580
  • 浏览次数:781次
  • 最后更新:2023年06月28日
  • 所属栏目:表单
本站默认解压密码:19jp.com 或 19jp_com

简介

级联选择框是一种独特的选择机制,对于从大列表中选择项目特别有用。Cascader是一个实现此功能的jQuery插件。

这个jQuery插件从JS对象数组中生成一个用户友好的多列级联下拉列表,并允许您将其附加到文档中的任何文本字段。灵感来自Element UI和Ant Design的Cascader组件。

参见:

  • jQuery和纯JavaScript中的10个最佳级联下拉插件

请参阅实际操作:

如何使用它:

1.在文档中加载jQuery库和Cascader插件的文件。

  1. <link rel="stylesheet" href="/path/to/cascader.css" />
  2. <script src="/path/to/cdn/jquery.slim.min.js"></script>
  3. <script src="/path/to/cascader.js"></script>

2.在JS对象数组中准备数据,如下所示:

  1. // languages.js
  2. var languages = [
  3. {
  4. "indexcode": "1",
  5. "name": "Front-End",
  6. "s": [
  7. {
  8. "indexcode": "11",
  9. "name": "HTML",
  10. "s": [
  11. {
  12. "indexcode": "111",
  13. "name": "HTML"
  14. },
  15. {
  16. "indexcode": "112",
  17. "name": "XML"
  18. },
  19. {
  20. "indexcode": "113",
  21. "name": "HTML5"
  22. },
  23. ]
  24. },
  25. {
  26. "indexcode": "12",
  27. "name": "CSS",
  28. "s": [
  29. {
  30. "indexcode": "121",
  31. "name": "CSS"
  32. },
  33. {
  34. "indexcode": "122",
  35. "name": "CSS3"
  36. },
  37. {
  38. "indexcode": "123",
  39. "name": "CSS4"
  40. },
  41. ]
  42. },
  43. {
  44. "indexcode": "13",
  45. "name": "JavaScript",
  46. "s": [
  47. {
  48. "indexcode": "131",
  49. "name": "jQuery"
  50. },
  51. {
  52. "indexcode": "122",
  53. "name": "Angular"
  54. },
  55. {
  56. "indexcode": "123",
  57. "name": "React"
  58. },
  59. ]
  60. },
  61. ]
  62. },
  63. {
  64. "indexcode": "2",
  65. "name": "Back-End",
  66. "s": [
  67. {
  68. "indexcode": "21",
  69. "name": "C",
  70. "s": [
  71. {
  72. "indexcode": "211",
  73. "name": "C"
  74. },
  75. {
  76. "indexcode": "212",
  77. "name": "C++"
  78. },
  79. {
  80. "indexcode": "213",
  81. "name": "C#"
  82. },
  83. ]
  84. },
  85. {
  86. "indexcode": "22",
  87. "name": "Database",
  88. "s": [
  89. {
  90. "indexcode": "221",
  91. "name": "MySql"
  92. },
  93. {
  94. "indexcode": "222",
  95. "name": "SQL"
  96. },
  97. {
  98. "indexcode": "223",
  99. "name": "Oracle"
  100. },
  101. ]
  102. },
  103. {
  104. "indexcode": "23",
  105. "name": "Others",
  106. "s": [
  107. {
  108. "indexcode": "231",
  109. "name": "Node.js"
  110. },
  111. {
  112. "indexcode": "122",
  113. "name": "Python"
  114. },
  115. {
  116. "indexcode": "123",
  117. "name": "Ruby"
  118. },
  119. ]
  120. },
  121. ]
  122. }
  123. ]

3.导入数据JavaScript。

  1. <script src="./languages.js"></script>

4.生成一个级联下拉列表,并将其附加到一个输入字段。

  1. <input type="text" id="test"/>
  1. // parse data
  2. languages.forEach(function(item){
  3. item.label = item.name
  4. item.value = item.indexcode
  5. item.children = item.s
  6. item.s.forEach(function(item2){
  7. item2.label = item2.name
  8. item2.value = item2.indexcode
  9. if (item2.s && item2.s.length) {
  10. item2.children = item2.s
  11. item2.s.forEach(function(item3){
  12. item3.label = item3.name
  13. item3.value = item3.indexcode
  14. })
  15. }
  16. })
  17. })
  18.  
  19. // initialize
  20. $('#test').zdCascader({
  21. data: languages,
  22. container: '#test',
  23. onChange: function(value, label, datas){
  24. console.log(value, label, datas);
  25. }
  26. });

预览截图