Bootstrap multiselect下拉列表.val()不更新

我有3个下降,这是级联。 区域 – >区域 – >区域

我正在使用Bootstrap multiselect下拉菜单。

当我选择区域下拉时,各个区域将被绑定,同时新绑定区域的区域将被绑定到区域下拉。

这是我的下拉初始化代码。

$('#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的代码。

 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($("").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($("").val(value.Value).html(value.Text)); }); $('#ddlTerritory').multiselect( 'rebuild' ); $("#ddlTerritory").multiselect('selectAll', false); $("#ddlTerritory").multiselect('updateButtonText'); } }); } } 

这里$('#ddlRegion').val()不会更新到由于区域下拉更改而导致的新绑定区域值。

$('#ddlRegion').val()仍然包含初始页面加载区域值。

我现在被震惊了6个多小时。

有人可以帮我解决这个问题吗?

尝试在FillTerritoriesDropdown()和FillREgionsDropdown()函数中使用async:false 。 即在ajaxcalls到这两个函数的控制器。