Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 引导multiselect下拉列表.val()未更新_Javascript_Jquery_Twitter Bootstrap_Asp.net Mvc 4_Bootstrap Multiselect - Fatal编程技术网

Javascript 引导multiselect下拉列表.val()未更新

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

我有3个下拉列表,它们是级联的。 区域-->区域-->区域

我正在使用引导多选择下拉列表

当我选择区域下拉列表时,将绑定各个区域 同时,新绑定区域的领土将绑定到领土下拉列表

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

$('#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');

                }


        });

    }
}