微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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到这两个功能的控制器.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐