我正在使用select2 4.0.0进行此项目。关于这个问题的很多其他评论和想法似乎是针对select2的早期版本,所以我决定发布一个新问题。
我在页面上有一个select2,它既可以在数据库中创建条目,也可以编辑数据库中的条目。在用户键入几个字母后,可以通过ajax动态填充select2,并且可以选择一个值。这适用于在需要选择条目时创建条目。
在同一页面上,他们可以单击现有条目以显示更多信息,并以相同的形式编辑条目。这还需要使用正确的选择文本更新select2元素,并更新支持select2的select元素。由于这通常是通过ajax完成的,因此标记通常不存在。
我试过阅读select2的文档,但我发现它有点杂乱无章。 select2是否提供完成此功能的任何功能?我是否需要手动创建和更新所有标记?我曾查看过dataAdapter,但我不确定这是否是我需要的。
HTML:
<select class="form-control" name="entry" id="select_field" data-url="/entry/search"></select>
select2元素的代码:
$("#select_field").select2({
placeholder: "Search",
minimumInputLength: 2,
allowClear: true,
ajax: {
cache: true,
delay: 250,
method: 'POST',
url: $("#select_field").data('url'),
processResults: function (data, page) {
return {
results: data,
};
},
},
escapeMarkup: function (markup) { return markup; },
templateSelection: function (record) {
if (!record.id) { return record.text; }
return record.title;
},
templateResult: function (record) {
if (record.loading) { return record.text; }
var markup = $("<div>").text(record.title);
return markup.html();
},
});