jquery – 更新select2数据,而不重建控件

前端之家收集整理的这篇文章主要介绍了jquery – 更新select2数据,而不重建控件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在转换< input type =“hidden”>到select2下拉列表并通过查询方法向其提供数据
$('#inputhidden').select2({
    query: function( query ) {
        query.callback( data ); // the data is in the format select2 expects and all works well..
    );
});

问题是我需要破解select2 UI和位于搜索栏顶部的两个按钮,当点击时,将执行ajax调用,并将必须更新select2内容

现在,我需要这些更新,而不完全重建select2,而只是刷新下拉列表中的项目。我找不到一种方法来传递一组新的数据到已经创建的select2控件,是可能吗?

解决方法

如果你有局部数组的选项(收到通过ajax调用),我想你应该使用数据参数作为函数返回结果的选择框:
var pills = [{id:0,text: "red"},{id:1,text: "blue"}]; 

$('#selectpill').select2({
    placeholder: "Select a pill",data: function() { return {results: pills}; }
});

$('#uppercase').click(function() {
    $.each(pills,function(idx,val) {
        pills[idx].text = val.text.toUpperCase();
    });
});
$('#newresults').click(function() {
    pills = [{id:0,text: "white"},text: "black"}];
});

FIDDLE:http://jsfiddle.net/RVnfn/2/

如果你使用按钮自定义select2接口,只需调用updateResults(这个方法不允许从select2对象的外部调用,但你可以添加到select2中的allowedMethods数组,如果你需要)方法在更新数据数组后(例如, 。

猜你在找的jQuery相关文章