級聯地址

来源:https://www.cnblogs.com/longmaodaxia/archive/2019/09/06/11474598.html
-Advertisement-
Play Games

在項目中常常需要用級聯地址,為了實現這個功能,大家肯定會瘋狂得找插件快速實現,但是博主就喜歡使用純js來實現。 首先建立一個二維數組,第一列存省,第二列存城市並用分隔符分隔 建立兩個一維數組,一個存省,一個存城市 創建兩個初始變數,一個存當前選中得省,一個存當前選中得城市 給省的select選擇框添 ...


在項目中常常需要用級聯地址,為了實現這個功能,大家肯定會瘋狂得找插件快速實現,但是博主就喜歡使用純js來實現。

 

  •  首先建立一個二維數組,第一列存省,第二列存城市並用分隔符分隔
  • 建立兩個一維數組,一個存省,一個存城市
  • 創建兩個初始變數,一個存當前選中得省,一個存當前選中得城市
  • 給省的select選擇框添加一個change事件
  • 當select選中時,用選中的值與二維數組的第一列依次匹配
  • 匹配上了,建立一個臨時數組,獲取匹配上的第二列並用split分割存入臨時數組中
  • 將臨時數組依次push到城市數組中,並展示初始城市
  • <Select v-model="province" style="width:200px" @input="pro">
    <Option v-for="item in provinceList" :value="item.value" :key="item.value">
    {{ item.label }}
    </Option>
    </Select>
    <Select v-model="city" style="width:200px;margin-left: 24px">
    <Option v-for="item in cityList" :value="item.value" :key="item.value">
    {{ item.label }}
    </Option>
    </Select>
    provinceList: [
    {
    value: '北京市',
    label: '北京市'
    },
    {
    value: '上海市',
    label: '上海市'
    },
    {
    value: '天津市',
    label: '天津市'
    },
    {
    value: '重慶市',
    label: '重慶市'
    },
    {
    value: '河北省',
    label: '河北省'
    },
    {
    value: '山西省',
    label: '山西省'
    },
    {
    value: '內蒙古自治區',
    label: '內蒙古自治區'
    },
    {
    value: '遼寧省',
    label: '遼寧省'
    },
    {
    value: '吉林省',
    label: '吉林省'
    },
    {
    value: '黑龍江省',
    label: '黑龍江省'
    },
    {
    value: '江蘇省',
    label: '江蘇省'
    },
    {
    value: '浙江省',
    label: '浙江省'
    },
    {
    value: '安徽省',
    label: '安徽省'
    },
    {
    value: '福建省',
    label: '福建省'
    }, {
    value: '江西省',
    label: '江西省'
    }, {
    value: '山東省',
    label: '山東省'
    }, {
    value: '河南省',
    label: '河南省'
    }, {
    value: '湖北省',
    label: '湖北省'
    }, {
    value: '湖南省',
    label: '湖南省'
    }, {
    value: '廣東省',
    label: '廣東省'
    },
    {
    value: '廣西壯族自治區',
    label: '廣西壯族自治區'
    }, {
    value: '海南省',
    label: '海南省'
    }, {
    value: '四川省',
    label: '四川省'
    }, {
    value: '貴州省',
    label: '貴州省'
    }, {
    value: '雲南省',
    label: '雲南省'
    }, {
    value: '西藏自治區',
    label: '西藏自治區'
    }, {
    value: '陝西省',
    label: '陝西省'
    }, {
    value: '甘肅省',
    label: '甘肅省'
    }, {
    value: '寧夏回族自治區',
    label: '寧夏回族自治區'
    }, {
    value: '青海省',
    label: '青海省'
    }, {
    value: '新疆維吾爾自治區',
    label: '新疆維吾爾自治區'
    }, {
    value: '香港特別行政區',
    label: '香港特別行政區'
    }, {
    value: '澳門特別行政區',
    label: '澳門特別行政區'
    }, {
    value: '臺灣省',
    label: '臺灣省'
    },
    ],
    cityList: [],
    province: '',
    city: ''

    pro() { let sf
    = []; sf[0] = ["北京市", "東城|西城|崇文|宣武|朝陽|丰台|石景山|海澱|門頭溝|房山|通州|順義|昌平|大興|平谷|懷柔|密雲|延慶"]; sf[1] = ["上海市", "黃浦|盧灣|徐匯|長寧|靜安|普陀|閘北|虹口|楊浦|閔行|寶山|嘉定|浦東|金山|松江|青浦|南匯|奉賢|崇明"]; sf[2] = ["天津市", "和平|東麗|河東|西青|河西|津南|南開|北辰|河北|武清|紅撟|塘沽|漢沽|大港|寧河|靜海|寶坻|薊縣"]; sf[3] = ["重慶市", "萬州|涪陵|渝中|大渡口|江北|沙坪壩|九龍坡|南岸|北碚|萬盛|雙撟|渝北|巴南|黔江|長壽|綦江|潼南|銅梁|大足|榮昌|壁山|梁平|城口|豐都|墊江|武隆|忠縣|開縣|雲陽|奉節|巫山|巫溪|石柱|秀山|酉陽|彭水|江津|合川|永川|南川"]; sf[4] = ["河北省", "石家莊|邯鄲|邢台|保定|張家口|承德|廊坊|唐山|秦皇島|滄州|衡水"]; sf[5] = ["山西省", "太原|大同|陽泉|長治|晉城|朔州|呂梁|忻州|晉中|臨汾|運城"]; sf[6] = ["內蒙古自治區", "呼和浩特|包頭|烏海|赤峰|呼倫貝爾盟|阿拉善盟|哲里木盟|興安盟|烏蘭察布盟|錫林郭勒盟|巴彥淖爾盟|伊克昭盟"]; sf[7] = ["遼寧省", "沈陽|大連|鞍山|撫順|本溪|丹東|錦州|營口|阜新|遼陽|盤錦|鐵嶺|朝陽|葫蘆島"]; sf[8] = ["吉林省", "長春|吉林|四平|遼源|通化|白山|松原|白城|延邊"]; sf[9] = ["黑龍江省", "哈爾濱|齊齊哈爾|牡丹江|佳木斯|大慶|綏化|鶴崗|雞西|黑河|雙鴨山|伊春|七台河|大興安嶺"]; sf[10] = ["江蘇省", "南京|鎮江|蘇州|南通|揚州|鹽城|徐州|連雲港|常州|無錫|宿遷|泰州|淮安"]; sf[11] = ["浙江省", "杭州|寧波|溫州|嘉興|湖州|紹興|金華|衢州|舟山|台州|麗水"]; sf[12] = ["安徽省", "合肥|蕪湖|蚌埠|馬鞍山|淮北|銅陵|安慶|黃山|滁州|宿州|池州|淮南|巢湖|阜陽|六安|宣城|亳州"]; sf[13] = ["福建省", "福州|廈門|莆田|三明|泉州|漳州|南平|龍岩|寧德"]; sf[14] = ["江西省", "南昌市|景德鎮|九江|鷹潭|萍鄉|新餘|贛州|吉安|宜春|撫州|上饒"]; sf[15] = ["山東省", "濟南|青島|淄博|棗莊|東營|煙臺|濰坊|濟寧|泰安|威海|日照|萊蕪|臨沂|德州|聊城|濱州|菏澤"]; sf[16] = ["河南省", "鄭州|開封|洛陽|平頂山|安陽|鶴壁|新鄉|焦作|濮陽|許昌|漯河|三門峽|南陽|商丘|信陽|周口|駐馬店|濟源"]; sf[17] = ["湖北省", "武漢|宜昌|荊州|襄樊|黃石|荊門|黃岡|十堰|恩施|潛江|天門|仙桃|隨州|咸寧|孝感|鄂州"]; sf[18] = ["湖南省", "長沙|常德|株洲|湘潭|衡陽|岳陽|邵陽|益陽|婁底|懷化|郴州|永州|湘西|張家界"]; sf[19] = ["廣東省", "廣州|深圳|珠海|汕頭|東莞|中山|佛山|韶關|江門|湛江|茂名|肇慶|惠州|梅州|汕尾|河源|陽江|清遠|潮州|揭陽|雲浮"]; sf[20] = ["廣西壯族自治區", "南寧|柳州|桂林|梧州|北海|防城港|欽州|貴港|玉林|南寧地區|柳州地區|賀州|百色|河池"]; sf[21] = ["海南省", "海口|三亞"]; sf[22] = ["四川省", "成都|綿陽|德陽|自貢|攀枝花|廣元|內江|樂山|南充|宜賓|廣安|達川|雅安|眉山|甘孜|涼山|瀘州"]; sf[23] = ["貴州省", "貴陽|六盤水|遵義|安順|銅仁|黔西南|畢節|黔東南|黔南"]; sf[24] = ["雲南省", "昆明|大理|曲靖|玉溪|昭通|楚雄|紅河|文山|思茅|西雙版納|保山|德巨集|麗江|怒江|迪慶|臨滄"]; sf[25] = ["西藏自治區", "拉薩|日喀則|山南|林芝|昌都|阿裡|那曲"]; sf[26] = ["陝西省", "西安|寶雞|咸陽|銅川|渭南|延安|榆林|漢中|安康|商洛"]; sf[27] = ["甘肅省", "蘭州|嘉峪關|金昌|白銀|天水|酒泉|張掖|武威|定西|隴南|平涼|慶陽|臨夏|甘南"]; sf[28] = ["寧夏回族自治區", "銀川|石嘴山|吳忠|固原"]; sf[29] = ["青海省", "西寧|海東|海南|海北|黃南|玉樹|果洛|海西"]; sf[30] = ["新疆維吾爾自治區", "烏魯木齊|石河子|克拉瑪依|伊犁|巴音郭勒|昌吉|克孜勒蘇柯爾克孜|博爾塔拉|吐魯番|哈密|喀什|和田|阿克蘇"]; sf[31] = ["香港特別行政區", "香港特別行政區"]; sf[32] = ["澳門特別行政區", "澳門特別行政區"]; sf[33] = ["臺灣省", "臺北|高雄|臺中|臺南|屏東|南投|雲林|新竹|彰化|苗慄|嘉義|花蓮|桃園|宜蘭|基隆|臺東|金門|馬祖|澎湖"]; let self = this; let i; let j; let tmpCity = []; for (i = 0; i < sf.length; i++) { if (self.province === sf[i][0].toString()) { tmpCity = sf[i][1].split("|"); self.cityList = []; for (j = 0; j < tmpCity.length; j++) { let temp = { value: tmpCity[j], label: tmpCity[j] }; self.city = tmpCity[0];//初始選中預設城市 self.cityList.push(temp) } } } }

     


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 問題講解:在使用vue版本的ElementUI中的table功能的時候還是遇到了一些問題,可以說餓了麽團隊在這個UI框架的文檔撰寫已經非常不錯了,不過還是有一些方法乍一看讓人摸不著頭腦,有些table的常用功能示例代碼提供的不是非常詳細,所以這次針對這個可展開表格實現手風琴效果寫一篇博客探討一下。 ...
  • 1.nodejs安裝,地址 https://nodejs.org/en/ 2.在本地項目中運行npm run build 命令將開發好的項目打包生成.nuxt文件夾,然後把.nuxt文件夾、nuxt.config.js、static文件夾、package.json (如果有自己創建的文件夾也需拷貝) ...
  • 首先在要使用的靜態文件代碼中引入‘./sliderVerify/sliderVerify.js‘ 先看看效果 示例代碼 另外 如果你不是用的layui的form提交 那麼這裡提供了一種方法 可以拿去放在你自己想要驗證的form中 作為校驗依據 或者你可以配置一下滑動成功時的回調 使用該方法可以將組件 ...
  • <!doctype html><!--聲明文檔類型 網頁文檔--> <html lang="en"><!--根目錄標簽 父級--> <head><!--網頁的頭部 用戶看不見的--> <meta charset='UTF-8'><!--國際編碼 字元的編碼格式--> <!--網頁三要素 title ... ...
  • 過去十年,是前端覺醒的十年。 前端這個行業很年輕,更早時候其實是有前端工作但是沒有前端崗位。大家覺得這個東西程式員做也行,設計師做也行。前端工作一直存在,但是沒有人認為它是一個獨立的工種和崗位,也沒有人去發展它的工程體系,更沒有人去找它的核心價值。所以如果說過去十年前端是什麼樣的十年,我認為是覺醒的 ...
  • 本來是想做一個滑鼠點擊事件:A,B兩個東西,B先隱藏,點擊A,B出現,再點一次A,B消失,然後發現在判斷不同的情況下,出現了一點小問題 暫時沒有問題的寫法: 然後,我把它的判斷條件改了一下,其實這是我第一次寫的想法: 然後它的效果是,第一次點擊的時候沒有反應,要點第二次,B才會出來,有點不明白 ...
  • (馬蜂窩技術原創內容,公眾號 ID:mfwtech) 一份來自 Akamai 的研究報告顯示,在對 1048 名網購戶進行採訪後發現: 約 47% 的用戶期望他們的頁面在兩秒之內載入完成。 如果頁面載入時間超過 3s,約 40% 的用戶會選擇離開或關閉頁面。 約 47% 的用戶期望他們的頁面在兩秒之 ...
  • Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式,它採用集中式存儲管理應用的所有組件的狀態,註意:使用前需要先載入vue文件才可以使用(在node.js下需要使用Vue.use(Vuex)來安裝vuex插件,在瀏覽器環境下直接載入即可,vuex會自行安裝) vuex的使用方法很簡單,首 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...