使用AJAX在插入后在Select2中设置数据

我将Select2与AJAX一起使用(代码如下):

$(“.select2 ajax”).select2({
占位符:“搜索用户”,
最小输入长度:1,
阿贾克斯:{
url:$(“#url搜索客户端”).val(),
数据类型:“json”,
键入:“post”,
数据:功能(术语,第页){
返回{
过滤器:术语
};
},
结果:功能(数据、页面){
返回{结果:数据};
}
},
宽度:“50%”,
formatInputToShort:function(){return'Informe mais caracteres';},
formatResult:formatResultSelectAjax,//为简洁起见省略,请参阅此页面的源代码
formatSelection:formatSelectAjaxValue,//为简洁起见省略,请参阅此页面的源代码
dropdownCssClass:“bigdrop”//应用使下拉列表更高的css
});

那么,如果找不到客户端,用户可以使用一个按钮打开一个模式并添加新客户端,是否可以使用新客户端的返回(带有id和namae的json)并将数据(如名称)放入select2中

$('.btn表单客户端')。单击(函数(){
$.ajax({
url:$('frm client').attr('action'),
数据类型:“json”,
键入:“post”,
数据:$(“#frm客户端”).serialize()
}).完成(功能(数据){
$(“#模式客户端”).modal('hide'))
});
返回false;
});

从v4.x开始,选择2不再使用隐藏的input字段。而是创建一个新的选项,并将其附加到选择元素:

var newOption=newOption(data.name,data.id,true,true);
$(“.select2ajax”).append(newOption.trigger('change');

true参数和触发器('change')的组合将确保新的<选项&gt在添加后自动选择

有关完整的工作示例,请参见我的代码笔

发表评论