1

我在这个项目中使用 select2 4.0.0。关于这个问题的许多其他评论和想法似乎是针对以前版本的 select2,所以我决定发布一个新问题。

我在一个页面上有一个 select2 ,它既可以在数据库中创建条目,也可以在数据库中编辑条目。select2 在用户输入几个字母后由 ajax 动态填充,他们可以选择一个值。当他们需要选择一个条目时,这适用于创建条目。

在同一页面上,他们可以单击现有条目以显示更多信息并在同一表单中编辑条目。这还需要使用正确的选择文本更新 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();
    },
});
4

0 回答 0