jeesite級聯下拉框


        1. 首先,搞本字典,在系統設置->字典管理里新增一部字典,並添加數據

        

        前兩位是一級分類,再兩位是二級分類,最后三位是最后一級分類

 

        2. 在需要下拉框的html文件內,找到下拉框對應標簽然后在<script>標簽中添加以下js代碼,用標簽后的內容替換#后面的字符串

 1 var assetSortJson;
 2 $.ajax({
 3     type:"POST",
 4     url:"${ctx}/sys/dictData/treeData?dictType=asset_sort",
 5     dataType:"json",
 6     success: function(json){
 7         
 8         assetSortJson = json
 9         
10         // 當前選擇的class編號
11         var cla = $('#assetClassId option:selected').val();
12         // 指向options所在標簽
13         var classSelect = $("#assetClassId")[0];
14         // 清空所有selection,在for循環中重新導入相應的class
15         classSelect.options.length=1;
16         
17         var sort = $('#assetSortId option:selected').val();
18         var sortSelect = $("#assetSortId")[0];
19         sortSelect.options.length=1;
20         
21         
22         var category = $('#categoryId option:selected').val();
23         var categorySelect = $("#categoryId")[0];
24         categorySelect.options.length=1;
25         
26         for (var i of assetSortJson) {
27             if (i.value.length == 2) {
28                 classSelect.options.add(new Option(i.name, i.value, false, i.value == cla));
29             } else if (i.value.length == 4 && i.value.substr(0, 2) == cla) {
30                 sortSelect.options.add(new Option(i.name, i.value, false, i.value == sort));
31             } else if (i.value.length == 7 && i.value.substr(0, 4) == sort) {
32                 categorySelect.options.add(new Option(i.name, i.value, false, i.value == category));
33             }
34         }
35     }
36 });

        這里的assetsort會從字典的路由中把整本字典以json格式取出來,之后別有他用。

        我的分類有三級,分別取名class, sort, category。根據不同的長度,依次將不同級別的選項加入到xxxSelect中。

        現在我們再次打開頁面,初始化后,選項已經不再是整本字典了,而是我們分類之后的結果。

 

        3. 然后再次找到那幾個標簽,加上onchange=<方法名>,然后在<script>標簽中再次添加如下代碼

 1 function getSort() {
 2     var selectedClass = $('#assetClassId option:selected').val();
 3     
 4     var selectedSort = $('#assetSortId option:selected').val();
 5     var sortSelect = $("#assetSortId")[0];
 6     sortSelect.options.length=1;
 7     
 8     var categorySelect = $("#categoryId")[0];
 9     categorySelect.options.length=1;
10     
11     for (var i of assetSortJson) {
12         if (i.value.length == 4 && i.value.substr(0, 2) == selectedClass) {
13             sortSelect.options.add(new Option(i.name, i.value, false, i.value == selectedSort));
14         }
15     }
16 }
17 
18 function getCategory() {
19     var selectedSort = $('#assetSortId option:selected').val();
20     
21     var isSelected = $('#categoryId option:selected').val();
22     var categorySelect = $("#categoryId")[0];
23     categorySelect.options.length=1;
24     
25     for (var i of assetSortJson) {
26         if (i.value.length == 7 && i.value.substr(0, 4) == selectedSort) {
27             categorySelect.options.add(new Option(i.name, i.value, false, i.value == isSelected));
28         }
29     }
30 }

        這里我們就要用到剛才取出的json,然后再根據該分類的長度,把選項重新放入。其實可以用filter的功能,多存幾個變量,這樣就不用每次掃整個json了。

 

        4.

        

        這里呢就是效果圖了,成了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM