省市區(qū)三級聯(lián)動:非常好用的純js插件

最近在做表單的時候,要用到 省市區(qū)三級聯(lián)動 的插件。 在網(wǎng)上搜了很多插件,但是感覺有的插件做的并不太好,并且有的插件省市區(qū)三個select必須在同一個div包裹下,如果不在同一個包裹下的話,就不能進行關(guān)聯(lián),個人感覺跟我要用的表單不太搭。

這里推薦個非常好用的 純js插件,使用的時候只需要 引入這個js文件,然后 綁定三個select,作為初始化省市區(qū)的容器位置可以隨便放哪,都能夠進行聯(lián)動,非常方便。

1. 下面就簡單的介紹下area.js的用法:
2. html使用以及初始化
//1.引入area.js文件
<script src="./area.js"></script>

// 2.html結(jié)構(gòu)
<label>省:<select id="province"></select></label><br/>
<label>市:<select id="city"></select></label><br/>
<label>縣:<select id="county"></select></label><br/>

//3.初始化(三個節(jié)點的id)
<script>
_init_("province", "city", "county");
</script>
3. 怎么獲取省市區(qū)的value值?

這里非常的簡單,直接使用jquery中的val()方法。

<script>
//jquery入口函數(shù)
$(function(){
         var a = $("#province") .val();//省
         var b = $("#city").val(); //市
         var c = $("#county").val(); //縣
// 可以添加一個按鈕,觸發(fā)打印省市區(qū)的值
        $("#btn").click(function(){
                console.log(a,b,c);       
       });    
// 當(dāng)然也可以給select添加change事件
       $("#province").bind("change", function(){
                 console.log($(this).val());
      })
});
</script>
4. 怎么設(shè)置指定的值?

比如說我想讓頁面一上來選中了 河南省鄭州市中原區(qū) ,很簡單,直接使用jquery中的val()方法,給它設(shè)置我們指定的值。

        $("#province") .val("河南省");//省
        $("#city").val(“鄭州市”); //市
        $("#county").val(“中原區(qū)”); //縣

刷新頁面你會發(fā)現(xiàn),只選中了省,市和縣都為空,同時如果此時改變了省的值,但是市和縣也不能進行關(guān)聯(lián)。

5. 為什么呢? 這就需要我們手動觸發(fā)關(guān)聯(lián)

怎么觸發(fā)關(guān)聯(lián)呢,直接調(diào)用change()方法,給它傳遞索引值。

就是說我們在給它設(shè)置值的時候,每設(shè)置一次值,就要手動觸發(fā)一次關(guān)聯(lián),比如:

  • 省與市的關(guān)聯(lián),索引為1;
  • 市與縣的關(guān)聯(lián),索引為2;
          $("#province") .val("河南省");//省
         change(1);  // 觸發(fā)省市關(guān)聯(lián)
        $("#city").val(“鄭州市”); //市
        change(2);  // 觸發(fā) 市縣關(guān)聯(lián)
        $("#county").val(“中原區(qū)”); //縣

刷新頁面,顯示的就是我們設(shè)置的值,河南省鄭州市中原區(qū)
并且改變省或市都能進行關(guān)聯(lián)下級區(qū)域you jump I jump

6. 原先未修改的js文件存在的問題?

js文件只能哪里引用哪里才可以使用,比如說你多個頁面都使用了省市區(qū)的插件,就會有問題。

但是修改過的,就不存在這樣的問題,可以放心使用,同時全國省市區(qū)的數(shù)據(jù)city.json一般也不會改變,放在本地加載的速度會更快。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容