从JS中选择基于Ajax的Select2中的选项

时间:2015-08-03 17:03:43

标签: jquery-select2 jquery-select2-4

我正在使用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();
    },
});

0 个答案:

没有答案