Javascript 引导multiselect下拉列表.val()未更新
我有3个下拉列表,它们是级联的。 区域-->区域-->区域 我正在使用引导多选择下拉列表 当我选择区域下拉列表时,将绑定各个区域 同时,新绑定区域的领土将绑定到领土下拉列表 这是我的下拉式初始化代码Javascript 引导multiselect下拉列表.val()未更新,javascript,jquery,twitter-bootstrap,asp.net-mvc-4,bootstrap-multiselect,Javascript,Jquery,Twitter Bootstrap,Asp.net Mvc 4,Bootstrap Multiselect,我有3个下拉列表,它们是级联的。 区域-->区域-->区域 我正在使用引导多选择下拉列表 当我选择区域下拉列表时,将绑定各个区域 同时,新绑定区域的领土将绑定到领土下拉列表 这是我的下拉式初始化代码 $('#ddlZone').multiselect({ enableClickableOptGroups: true, enableCollapsibleOptGroups: true, enableFiltering: tru
$('#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');
}
});
}
}
函数fillRegionDropdown()
{
var Zone=$('#ddlZone').val();
如果(区域!=null)
{
Zone=Zone.join(“,”);
$.ajax({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
url:“@url.Action”(“BindRegionsOnZonesAjax”,“GeoMap”)”,
数据:“{ZoneIds:'”+Zone+“}”,
成功:功能(结果)
{
$(“#ddlRegion”).html(“”);
$('#ddlRegion').multiselect('refresh');
$。每个(结果、函数(键、值){
$(“#ddlRegion”).append($(“”).val(value.value.html(value.Text));
});
$('#ddlRegion').multiselect('rebuild');
$(“#ddlRegion”).multiselect('selectAll',false);
$(“#ddlRegion”).multiselect('updateButtonText');
}
});
}
}
上面的代码非常有效,即在区域下拉列表中更改区域绑定并设置为全选
但问题在于约束区域的下降和区域下降的变化
这是区域下拉列表绑定的代码
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');
}
});
}
}
函数fillTerrities下拉列表()
{
var rgns=$('#ddlRegion').val();
如果(rgns!=null)
{
rgns=rgns.join(“,”);
$.ajax({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
url:“@url.Action”(“BindTerritoriesOnRegionsAjax”,“GeoMap”)”,
数据:“{regionId:'”+rgns+“}”,
成功:功能(结果)
{
$(“#”)html(“”);
$('#ddl').multiselect('refresh');
$。每个(结果、函数(键、值){
$(“#”).append($(“”).val(value.value.html(value.Text));
});
$('#ddl').multiselect('rebuild');
$(“#ddl”).multiselect('selectAll',false);
$(“#ddltorritory”).multiselect('updateButtonText');
}
});
}
}
此处,$('#ddlRegion').val()
不会更新为新绑定的区域值,这是由于区域下拉列表更改引起的
$('#ddlRegion').val()
仍然包含初始页面加载区域值
我已经被这个问题困扰了6个多小时了
有人能帮我解决这个问题吗?尝试在FillTerritoriesDropdown()和FillRegionDropdown()函数中使用
async:false
。i、 e.在Ajax中,调用这两个函数的控制器。救了我的命,兄弟。谢谢:)
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');
}
});
}
}