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

