在Bootstrap-select中动态选择多个值不起作用

时间:2018-06-04 08:25:48

标签: javascript jquery bootstrap-selectpicker

我试过一个例子: this example

它的工作正常,但当我试图动态绑定它不起作用。请任何人都可以帮忙。

请找到以下代码:

下拉代码:

 function FillDetail(id) {
        $.ajax({
            dataType: "json",
            type: "POST",
            url: '../Getdata',
            data: 'id=' + id,
            async: true,
            success: function (data) {
                $.each(data, function (i, item) {
                    alert('[' + item.CooperativeUserID + ']');
                    $('#lstdrpdwn').selectpicker('val', '[' + item.CooperativeUserID + ']');  //.val(item.CooperativeUserID);
                    $('#lstdrpdwn').selectpicker('refresh');
                })
            },
            error: function (jqXHR, textStatus, errorThrown) {
            }
        });
    }

** Jquery:**

//$('#lstdrpdwn').selectpicker('refresh');

此外,我还尝试删除$('.selectpicker').selectpicker('refresh');行。

并且aslo试图刷新selectpicker
 function filldropdown() { return $.ajax({ dataType: "json", type: "POST", url: '../Getdropdown', data: 'id=0', async: true, success: function (data) { $("#lstdrpdwn").html(""); $.each(data, function (key, val) { $("#lstdrpdwn").append($("<option></option>").val(val.ID).html(val.Name)); }); $('#lstdrpdwn').selectpicker('refresh'); $('#lstdrpdwn').selectpicker('val', [2,5]); }, error: function (jqXHR, textStatus, errorThrown) { } }); } 它不起作用。

当我使用静态ID绑定值时,它在填充下拉列表时工作正常。

If an origin server wishes to force a cache to validate every
request, it can assign an explicit expiration time in the past to
indicate that the response is already stale.

2 个答案:

答案 0 :(得分:1)

所以你必须给selectpicker一个数组来设置vals。 你是这样做的:

$.each(data, function (i, item) {
                    alert('[' + item.CooperativeUserID + ']');
                    $('#lstdrpdwn').selectpicker('val', '[' + item.CooperativeUserID + ']');  //.val(item.CooperativeUserID);
                    $('#lstdrpdwn').selectpicker('refresh');
                })

正确的方式就像是:

var selected =  data.map(function(e) {
             return e.CooperativeUserID ;
           });
$('#lstdrpdwn').selectpicker('val', selected);

使用$ .each:

var selected = [];
    $.each(data, function (i, item) {
                 selected.push(item.CooperativeUserID);       

                    });
$('#lstdrpdwn').selectpicker('val', selected);

你可以在这里找到一个例子:https://jsfiddle.net/segito/0u3nw1wc/

答案 1 :(得分:0)

感谢您的回复

我只是这样试过,它对我有用。

<强> JQUERY

function FillDetail(id) {
    $.ajax({
        dataType: "json",
        type: "POST",
        url: '../Getdata',
        data: 'id=' + id,
        async: true,
        success: function (data) {
            $.each(data, function (i, item) {
                var array = item.CooperativeUserID.split(',');
                $('#lstdrpdwn').selectpicker('val', array);
            })
        },
        error: function (jqXHR, textStatus, errorThrown) {
        }
    });
}