我实现了一个select2
下拉菜单,允许用户输入自定义输入...
$("#select").select2({
createSearchChoice:function(term, data) {
if ($(data).filter(function() {
return this.text.localeCompare(term)===0;
}).length===0)
{return {id:term, text:term};}
},
multiple: false,
selectOnBlur: true,
data: [{id: 1, text: '1'}, {id: 2, text: '2'}, {id: 3, text: '3'}]
});
这很好,但是在某些情况下,我需要以编程方式为select2
下拉菜单设置自定义值。我尝试执行以下操作...
// Doesn't work
$('#select').val('val', custom);
// Doesn't work
$('#select').val(custom);
有什么办法吗?
正在我选择的下拉列表中fiddle工作。
答案 0 :(得分:1)
我发现了如何完成自己想要的事情。解决方法是...
$('#select').select2('data', {id: id, text: custom});
以下内容会将输入设置为任何值custom
,而不会添加到列表本身。
这里是工作中的fiddle。
答案 1 :(得分:0)
您要显示选定的值吗?如果可以的话,您可以添加
$('#select').val(custom).attr("selected", "selected").change();
答案 2 :(得分:0)
如果我没记错的话,您需要触发更改以使select2生效。
$('#select').val(custom).change();