Bootstrap-select2 ajax动态取值赋值

最近接手了一个bootstrap框架的项目,下拉列表采用的select2,对于select说好处是支持搜索、多选,但是取值、赋值就麻烦许多了。直接上代码

$('#id’).select2({
    dropdownParent: $("#parent"),
    width:200,
    allowClear: true,
    placeholder : "请选择",
    ajax: {
        type: 'POST',
        url: url,
        dataType: 'json',
        data: function (params) {
            return { page: params.page };
        },
        processResults: function (data, params) {
            return { results: data }
        },
        cache: true
    },
});

   

获取选中的值

id = $("#id ").select2("data")[0].id;

text = $("#id ").select2("data")[0].text;

赋值

方法如下,但是对于数据从ajax动态获取,是不起作用的,因为select2是在点击之后加载数据的,数据源是未知的

$("#id ").select2("val", ["xxx"]);

$("#id ").select2(["xxx"]).trigger("change");

解决方法

1.重新获取数据,再次请求

$.ajax({
    type: "POST",
    dataType: 'json',
    url: url,
    success: function (data) {
        $.each(data, function (index, item) {
            if (item.id ==code) {
                var option = new Option(item.text, item.id);
                $("#id ").append(option).trigger('change');
            }
        })
    }
});

2. 先加载数据源

$.ajax({
    dataType : 'json',
    type : 'post',
    url :url,
    success: function(data){
        $("#id").select2({
            placeholder : "请选择",
            dropdownParent : $("#parent"),
            allowClear : true,
            width : 200,
            data : data
        });    
    }
});

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值