基于?jquery-cxselect?實現(xiàn)下拉聯(lián)動效果功能實現(xiàn)
寫在前面
下拉聯(lián)動效果是一個老生常談的問題了,實現(xiàn)方式也是多種多樣。最近遇到類似的需求,這里整理一下。
下拉聯(lián)動實現(xiàn)基于jquery的一款聯(lián)動下拉菜單插件 jquery-cxselect
功能實現(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è)置下拉框的默認選擇值 -->
<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)備了一個JSON文件 ,點擊連接直接下載放到項目中即可。下面羅列一部分摘要。
[
{
"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 選項賦值
jsonName: 'name',
// 從 JSON 數(shù)據(jù)中獲取指定 key 的值,獲取聯(lián)動的子數(shù)據(jù)
jsonSub: 'children',
data: data,
});
});
</script>補充:Jquery cxSelect多級聯(lián)動下拉組件的使用
Jquery cxSelect多級聯(lián)動下拉組件的使用
雖然,現(xiàn)在的項目大都不直接使用jquery進行開發(fā)了。但是身為后端的我依然遇到了,單體項目,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們必須用一個dom(id可以隨意?。┌饋恚仨氁衏lass屬性
<!-- select 必須放在元素 id="element_id" 的內(nèi)部,不限層級 select 的 class 任意取值,也可以附加多個 class,如 class="province otherclass",在調(diào)用時只需要輸入其中一個即可,但是不能重復(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屬性值
// 通過默認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ù)組第一個值就對應(yīng)第一個下拉框
? jsonSub:子select的list數(shù)據(jù)字段(這里是統(tǒng)一指定,即設(shè)置后每一個子級的數(shù)據(jù)字段都叫這個名字),不指定該屬性,它默認會去找“s”這個字段
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ù)據(jù)字段,默認找“n”這個字段
? data-json-value:指定選中時取哪個字段作為值
? data-json-sub:如果返回的Json數(shù)據(jù)的子級下拉數(shù)據(jù)字段不完全同名,可以單獨為每一個下拉框指定子級list字段名
到此這篇關(guān)于基于 jquery-cxselect 實現(xiàn)下拉聯(lián)動效果的文章就介紹到這了,更多相關(guān)jquery-cxselect 下拉聯(lián)動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析jQuery Ajax請求參數(shù)和返回數(shù)據(jù)的處理
這篇文章主要介紹了淺析jQuery Ajax請求參數(shù)和返回數(shù)據(jù)的處理的相關(guān)資料,需要的朋友可以參考下2016-02-02
淺談JSON和JSONP區(qū)別及jQuery的ajax jsonp的使用
文章從JSON和JSONP區(qū)別開始講起,用實例來對比他們之間的不同之處,然后詳細講解了jQuery中的ajax jsonp的使用并給出了示例及詳細參數(shù)說明。這里推薦給大家,希望對小伙伴能有所幫助2014-11-11
jQuery+json實現(xiàn)動態(tài)創(chuàng)建復(fù)雜表格table的方法
這篇文章主要介紹了jQuery+json實現(xiàn)動態(tài)創(chuàng)建復(fù)雜表格table的方法,涉及jQuery針對json數(shù)據(jù)的解析與表格動態(tài)創(chuàng)建操作相關(guān)技巧,需要的朋友可以參考下2016-10-10
jquery 讀取頁面load get post ajax 四種方式代碼寫法
jquery 讀取頁面load get post ajax 四種方式代碼寫法,學(xué)習(xí)jquery的朋友可以參考下。2011-04-04
基于jquery固定于頂部的導(dǎo)航響應(yīng)瀏覽器滾動條事件
這款導(dǎo)航當(dāng)瀏覽器滾動條位于頂部時,導(dǎo)航高度較高,當(dāng)瀏覽器滾動向下滾動時,導(dǎo)航高度自動減低,并位于頂部2014-11-11

