基于?jquery-cxselect?實(shí)現(xiàn)下拉聯(lián)動效果功能實(shí)現(xiàn)
寫在前面
下拉聯(lián)動效果是一個(gè)老生常談的問題了,實(shí)現(xiàn)方式也是多種多樣。最近遇到類似的需求,這里整理一下。
下拉聯(lián)動實(shí)現(xiàn)基于jquery的一款聯(lián)動下拉菜單插件 jquery-cxselect
功能實(shí)現(xiàn)
1、導(dǎo)入腳本
<!-- jQueyr 腳本 --> <script src="/js/jquery.min.js?v=3.6.3"></script> <!-- jQueyr 下拉插件腳本 --> <script src="/jsjquery.cxselect.min.js?v=1.4.2"></script>
2、編寫頁面組件
頁面組件布局使用的是 BootStrap。
注意:div 組件的 id 屬性,后面腳本會用到
<div class="form-group" id="pca"> <label class="col-sm-2 control-label is-required">省市縣:</label> <div class="col-sm-3"> <!-- data-value 可以設(shè)置下拉框的默認(rèn)選擇值 --> <select name="province" class="province form-control m-b" required data-value=""></select> </div> <div class="col-sm-3"> <select name="city" class="city form-control m-b" required data-value=""></select> </div> <div class="col-sm-3"> <select name="area" class="area form-control m-b" required data-value=""></select> </div> <div class="col-sm-3 col-sm-offset-2"> <select name="street" class="street form-control m-b" required data-value=""></select> </div> </div>
3、JSON 數(shù)據(jù)準(zhǔn)備
這里準(zhǔn)備了一個(gè)JSON文件 ,點(diǎn)擊連接直接下載放到項(xiàng)目中即可。下面羅列一部分摘要。
[ { "code": "11", "name": "北京市", "children" : [ { "code" : "1101", "name" : "市轄區(qū)", "children" : [ { "code" : "110101", "name" : "東城區(qū)" , "children" : [ { "code" : "110101001", "name" : "東華門街道" }, { "code" : "110101002", "name" : "景山街道" }, ] } ] } ] } ]
4、腳本編寫
<script th:inline="javascript"> /* 讀取 json 文件,轉(zhuǎn)換為 JSON 數(shù)組,方便遍歷 */ $.getJSON('/pcas-code.json', function(data){ // 基于 ID 選擇器,選擇級聯(lián)組件的父容器,調(diào)用插件的 cxSelect 方法,傳遞參數(shù)。 $('#pca').cxSelect({ // 選擇聯(lián)動組件,以 class 選擇器選擇 selects: ['province', 'city', 'area', 'street'], // 是否為必選 required: false, // 從 JSON 數(shù)據(jù)中獲取指定 key 的值,給 option 標(biāo)簽的 value 賦值 jsonValue: 'code', // 從 JSON 數(shù)據(jù)中獲取指定 key 的值,給 option 選項(xiàng)賦值 jsonName: 'name', // 從 JSON 數(shù)據(jù)中獲取指定 key 的值,獲取聯(lián)動的子數(shù)據(jù) jsonSub: 'children', data: data, }); }); </script>
補(bǔ)充:Jquery cxSelect多級聯(lián)動下拉組件的使用
Jquery cxSelect多級聯(lián)動下拉組件的使用
雖然,現(xiàn)在的項(xiàng)目大都不直接使用jquery進(jìn)行開發(fā)了。但是身為后端的我依然遇到了,單體項(xiàng)目,themeleaf模板全棧開發(fā)
下面記錄一下如何使用(文檔這些對我們這些后端來說不是很友好)
1.首先頁面中要引入它的js(我這里是themeleaf)
<th:block th:include="include :: jquery-cxselect-js" />
js直接:
<script src="jquery.js"></script> <script src="jquery.cxselect.js"></script>
2.級聯(lián)的select們必須用一個(gè)dom(id可以隨意取)包裹起來,必須要有class屬性
<!-- select 必須放在元素 id="element_id" 的內(nèi)部,不限層級 select 的 class 任意取值,也可以附加多個(gè) class,如 class="province otherclass",在調(diào)用時(shí)只需要輸入其中一個(gè)即可,但是不能重復(fù) --> <div id="element_id"> <select class="curriculum"></select> <select class="chapter"></select> </div>
3.發(fā)請求獲取數(shù)據(jù),數(shù)據(jù)是json(級聯(lián)下拉數(shù)據(jù)類似于多層循環(huán),java中就是對象套list,list里面的對象再套list),$(’#element_id’)對應(yīng)最外層的id屬性值
// 通過默認(rèn)url獲取 var urlSelect = 'selectdata'; //設(shè)置請求路徑 $.cxSelect.defaults.url = urlSelect; $('#element_id').cxSelect({ selects: ['curriculum', 'chapter'], nodata: 'none', jsonSub: 'chapterList' });
selects數(shù)組中的數(shù)據(jù),就是select下拉框的class屬性的值,順序很重要,比如數(shù)組第一個(gè)值就對應(yīng)第一個(gè)下拉框
? jsonSub:子select的list數(shù)據(jù)字段(這里是統(tǒng)一指定,即設(shè)置后每一個(gè)子級的數(shù)據(jù)字段都叫這個(gè)名字),不指定該屬性,它默認(rèn)會去找“s”這個(gè)字段
4.需要注意的是,下拉框我們希望瀏覽name,選擇id
<select class="curriculum" name="curriculumId" data-json-name="name" data-json-sub="chapterList" data-json-value="id" data-first-title="所屬課程"> <option value="">請選擇</option> </select>
data-json-name:指定下拉時(shí)展示的數(shù)據(jù)字段,默認(rèn)找“n”這個(gè)字段
? data-json-value:指定選中時(shí)取哪個(gè)字段作為值
? data-json-sub:如果返回的Json數(shù)據(jù)的子級下拉數(shù)據(jù)字段不完全同名,可以單獨(dú)為每一個(gè)下拉框指定子級list字段名
到此這篇關(guān)于基于 jquery-cxselect 實(shí)現(xiàn)下拉聯(lián)動效果的文章就介紹到這了,更多相關(guān)jquery-cxselect 下拉聯(lián)動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jQuery解析json格式數(shù)據(jù)簡單實(shí)例
這篇文章主要介紹了jQuery解析json格式數(shù)據(jù)的方法,結(jié)合實(shí)例分析了使用jQuery1.7.2版本的方法解析json格式數(shù)據(jù)的技巧,需要的朋友可以參考下2016-01-01JQuery實(shí)現(xiàn)倒計(jì)時(shí)按鈕的實(shí)現(xiàn)代碼
頁面中需要實(shí)現(xiàn)某個(gè)按鈕點(diǎn)擊完后,禁用它,并顯示倒計(jì)時(shí)。這個(gè)默認(rèn)是3秒,代碼很簡單2012-03-03jQuery中text() val()和html()的區(qū)別實(shí)例詳解
這篇文章主要介紹了jQuery中text() val()和html()的區(qū)別實(shí)例詳解的相關(guān)資料,非常不錯,具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06jquery實(shí)現(xiàn)可點(diǎn)擊伸縮與展開的菜單效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)可點(diǎn)擊伸縮與展開的菜單效果代碼,涉及jquery鼠標(biāo)click事件控制頁面元素樣式變換的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08Easyui和zTree兩種方式分別實(shí)現(xiàn)樹形下拉框
最近工作中需要用到樹形下拉框,因?yàn)轫?xiàng)目中樹形結(jié)構(gòu)使用的是zTree,效果不是很好看,于是想著使用easyui的comboTree,雖然效果達(dá)到了,但是風(fēng)格和bootstrap不搭,下面把這兩種方式的效果分享到腳本之家平臺供大家參考2017-08-08