4

我有3個下拉是級聯的。 區域 - >區域 - >區域Bootstrap多選下拉列表.val()不更新

我正在使用Bootstrap多選下拉菜單。

當我選擇區域下拉菜單時,相應的區域將被綁定 ,同時新綁定區域的區域將被綁定到區域下拉菜單。

這是我的下拉初始化代碼。

$('#ddlZone').multiselect({ 
      enableClickableOptGroups: true, 
      enableCollapsibleOptGroups: true, 
      enableFiltering: true, 
      includeSelectAllOption: true, 
      nonSelectedText: 'Select Zone', 
      enableCaseInsensitiveFiltering: true, 
      selectAllNumber: true, 
      onChange: function(option, checked,select) { 
       FillRegionsDropdown(); 
       FillTerritoriesDropdown(); 

      } 

這裏是上述功能的代碼。

function FillRegionsDropdown() 
    { 


     var Zone=$('#ddlZone').val(); 
     if(Zone != null) 
     { 
      Zone= Zone.join(","); 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "@Url.Action("BindRegionsOnZonesAjax", "GeoMap")", 
       data: "{ZoneIds:'" + Zone + "'}", 

       success: function (Result) 
       { 


        $("#ddlRegion").html(""); 

        $('#ddlRegion').multiselect('refresh'); 
        $.each(Result, function (key, value) { 
         $("#ddlRegion").append($("<option></option>").val(value.Value).html(value.Text)); 
        }); 
        $('#ddlRegion').multiselect('rebuild'); 
        $("#ddlRegion").multiselect('selectAll', false); 
        $("#ddlRegion").multiselect('updateButtonText'); 

       } 


     }); 

    } 
} 

上面的代碼完美地工作,即在區域下拉菜單改變區域獲取綁定,並設置爲全選。

但問題是綁定區域下拉區域下拉更改。

這裏是Territory下拉菜單綁定的代碼。

function FillTerritoriesDropdown() 
    { 

     var rgns=$('#ddlRegion').val(); 
     if(rgns != null) 
     { 
      rgns= rgns.join(","); 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "@Url.Action("BindTerritoriesOnRegionsAjax", "GeoMap")", 
       data: "{RegionIds:'" + rgns + "'}", 

      success: function (Result) 
      { 


       $("#ddlTerritory").html(""); 

       $('#ddlTerritory').multiselect('refresh'); 
       $.each(Result, function (key, value) { 
        $("#ddlTerritory").append($("<option></option>").val(value.Value).html(value.Text)); 
       }); 
       $('#ddlTerritory').multiselect('rebuild'); 
       $("#ddlTerritory").multiselect('selectAll', false); 
       $("#ddlTerritory").multiselect('updateButtonText'); 

      } 


      }); 

    } 
    } 

這裏$('#ddlRegion').val()沒有得到更新,這是由於區域下拉變化引起新綁定的區域價值。

$('#ddlRegion').val()仍包含初始頁面加載區域值。

現在我已經受到這個問題超過6個小時了。

有人能幫我解決這個問題?

+0

救了我的命兄弟。謝謝 :) – Lakhae

回答

1

嘗試在這兩個FillTerritoriesDropdown()和FillREgionsDropdown()函數中使用async:false。即在這兩個功能的控制器的ajax調用中。