搜尋
首頁web前端js教程實現五級地區點擊後加載

實現五級地區點擊後加載

Mar 23, 2018 pm 03:15 PM
載入地區點選

這次帶給大家實現五級地區點擊後加載,五級地區點擊後加載的注意事項有哪些,下面就是實戰案例,一起來看一下。

在專案功能中需要輸入戶籍地和現居住地,為減少用戶輸入量,將使用樹插件選擇全國五級地區+輸入框輸入詳細地址。這裡優先使用了zTree樹插件。為了以後使用學習,在這裡進行相關記錄。當然在實現過程中參考各大神的文章是必不可少的,可以結合了自己的實際需求進行快速解決問題。

zTree 樹​​插件官網簡介

zTree 是一個依賴 jQuery 實現的多功能 「樹插件」。優異的性能、靈活的配置、多種功能的組合是 zTree 最大優點。

zTree 樹​​插件官網位址

http://www.treejs.cn/v3/main.php#_zTreeInfo

功能實作程式碼

資料庫地區表格基本結構:

regionType 地区级别
path 地区编码
name 地区名称
parentRegion 上级地区

頁面程式碼:

<!-- 户籍地、现居住地 -->
<tr>
 <td>
  <p>
   <label>户籍地</label>
   <input>
   <input>
   <input>
  </p>
 </td>
</tr>
<tr>
 <td>
  <p>
   <label>现居住地址</label>
   <input>
   <input>
   <input>
  </p>
 </td>
</tr>
<!-- bootstrap 模态框(Modal) -->
<p>
 <input>
 </p><p>
  </p><p>
   </p><p>
    <!-- zTree 的容器 -->
    </p>
           

                 

        

    ##效果:

    js程式碼:

    $(document).ready(function() {
     // zTree 参数配置
     var setting = {
      view: {
       showIcon: false,//是否显示节点的图标
       selectedMulti: false //设置是否允许同时选中多个节点。默认值: true。
      },
      data: {
       simpleData: {
        enable: true, //是否采用简单数据模式 (Array)。默认值:false
        idKey: "path", //节点数据中保存唯一标识的属性名称。
        pIdKey: "parentRegion", //节点数据中保存其父节点唯一标识的属性名称。
        rootPid: "10000000000000" //用于修正根节点父节点数据,即 pIdKey 指定的属性值。
       }
      },
      callback: {
       // 用于捕获节点被点击的事件回调函数
       onClick: function(event, treeId, treeNode, clickFlag) {
        var treeObj = $.fn.zTree.getZTreeObj(treeId); //根据 treeId 获取 zTree 对象
        // 这里判断节点被点击时,如果有已经加载下级节点,则不用请求服务器
        if((treeNode.children == null || treeNode.children == "undefined")){
         if(!$("#"+treeNode.tId+"_switch").hasClass("center_docu") && !$("#"+treeNode.tId+"_switch").hasClass("bottom_docu")){
          // 请求服务器,获得点击地区的下级地区
          $.ajax({
           type: "get",
           async: false,
           url: "tRegion/ajaxArea",
           data:{
            path:treeNode.path
           },
           dataType:"json",
           success: function(data){
            if(data != null && data.length != 0){
             //添加新节点
             var newNodes = treeObj.addNodes(treeNode, data);
             $(newNodes).each(function(i,n){
              var id = n.tId+"_switch";
              if($("#"+id).hasClass("center_docu")){
               $("#"+id).removeClass("center_docu");
               $("#"+id).addClass("center_close");
              }
              if($("#"+id).hasClass("bottom_docu")){
               $("#"+id).removeClass("bottom_docu");
               $("#"+id).addClass("bottom_close");
              }
             });
            }else{
             var id = treeNode.tId+"_switch";
             if($("#"+id).hasClass("center_close")){
              $("#"+id).removeClass("center_close");
              $("#"+id).addClass("center_docu");
             }
             if($("#"+id).hasClass("bottom_close")){
               $("#"+id).removeClass("bottom_close");
               $("#"+id).addClass("bottom_docu");
              }
            }
           },
           error:function(event, XMLHttpRequest, ajaxOptions, thrownError){
            result = true;
            toastr.error("请求失败!");
           }
          });
         }
        }else{
         // 展开当前节点
         treeObj.expandNode(treeNode);
        }
       }
       }
      };
     // 显示区域树,加载顶级节点
     $.ajax({
      type: "get",
      url: "tRegion/ajaxArea",
      data: {path:"10000000000000"},
      success: function(data, status) {
       if (status == "success") {
        // 初始化区域树
        $.fn.zTree.init($("#treeRegion"), setting, data);
        // 获得zTree对象
        var treeObj = $.fn.zTree.getZTreeObj("treeRegion");
        // 获得初始化的所有节点,即顶级节点
        var nodes = treeObj.getNodes();
        $(nodes).each(function(i,n){
         var id = n.tId+"_switch";
         if($("#"+id).hasClass("roots_docu")){
          $("#"+id).removeClass("roots_docu");
          $("#"+id).addClass("roots_close");
         }
         if($("#"+id).hasClass("center_docu")){
          $("#"+id).removeClass("center_docu");
          $("#"+id).addClass("center_close");
         }
         if($("#"+id).hasClass("bottom_docu")){
          $("#"+id).removeClass("bottom_docu");
          $("#"+id).addClass("bottom_close");
         }
        });
       }
      },
      error : function() {
       toastr.error('Error');
      },
     });
    });
    function showRegion(type){
     // 显示模态框
     $('#regionModal').modal('show');
     $("#regionModalType").val(type);
    }
    // 选择地区确认
    function confimRegion(){
     var type = $("#regionModalType").val();
     var treeObj = $.fn.zTree.getZTreeObj("treeRegion");
     var node = treeObj.getSelectedNodes(); //选中节点
     var regionType = node[0].regionType;
     if(Number(regionType) >= 5){
      $("#"+type+"-text").val(node[0].name);
      $("#"+type).val(node[0].path);
      $('#regionModal').modal('hide');
     }
    }
    實作效果:

    相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

    推薦閱讀:

    datepicker怎麼使用

    #mixin的高階元件使用詳解

    JS取得圖片的top N色值方法

    以上是實現五級地區點擊後加載的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    了解JavaScript引擎:實施詳細信息了解JavaScript引擎:實施詳細信息Apr 17, 2025 am 12:05 AM

    理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

    Python vs. JavaScript:學習曲線和易用性Python vs. JavaScript:學習曲線和易用性Apr 16, 2025 am 12:12 AM

    Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

    Python vs. JavaScript:社區,圖書館和資源Python vs. JavaScript:社區,圖書館和資源Apr 15, 2025 am 12:16 AM

    Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

    從C/C到JavaScript:所有工作方式從C/C到JavaScript:所有工作方式Apr 14, 2025 am 12:05 AM

    從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

    JavaScript引擎:比較實施JavaScript引擎:比較實施Apr 13, 2025 am 12:05 AM

    不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

    超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

    JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

    使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

    我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

    如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

    本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    1 個月前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳圖形設置
    1 個月前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您聽不到任何人,如何修復音頻
    1 個月前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.聊天命令以及如何使用它們
    1 個月前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    SecLists

    SecLists

    SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

    PhpStorm Mac 版本

    PhpStorm Mac 版本

    最新(2018.2.1 )專業的PHP整合開發工具

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

    Dreamweaver Mac版

    Dreamweaver Mac版

    視覺化網頁開發工具

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具