javascript – Bootstrap multiselect dropdown .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 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(",url: "@Url.Action("BindTerritoriesOnRegionsAjax",data: "{RegionIds:'" + rgns + "'}",success: function (Result)
            {


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

                $('#ddlTerritory').multiselect( 'refresh' );
                $.each(Result,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个多小时.

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

解决方法

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...