在 Select2 输入框中预加载标签的 Select2

4
我有一个很好用的Select2输入框。用户可以开始输入并从下拉菜单中选择选项,然后将标签添加到输入字段中。由于createSearchChoice函数的存在,他们还可以创建自己的标签。
我的情况是,当用户输入已经存在的客户名称时,它会锁定,并希望用标签(通常供应商)填充字段。然后用户可以删除或添加更多标签。
我的代码如下:
$('#usualSuppliers').select2({
        containerCssClass: 'supplierTags',
        placeholder: "Usual suppliers...",
        minimumInputLength: 2,
        multiple: true,
        placeholder: 'Usual suppliers...',
                createSearchChoice: function(term, data) {
            if ($(data).filter(function() {
                return this.name.localeCompare(term) === 0;
            }).length === 0) {
                return {id: 0, name: term};
            }

        },
        id: function(e) {
            return e.id + ":" + e.name;
        },
        ajax: {
            url: ROOT + 'Ajax',
            dataType: 'json',
            type: 'POST',
            data: function(term, page) {

                return {
                    call: 'Record->supplierHelper',
                    q: term
                };
            },
            results: function(data, page) {
                return {
                    results: data.suppliers
                };
            }
        },
        formatResult: formatResult,
        formatSelection: formatSelection,
        initSelection: function(element, callback) {
            var data = [];
            $(element.val().split(",")).each(function(i) {
                var item = this.split(':');
                data.push({
                    id: item[0],
                    title: item[1]
                });
            });
            //$(element).val('');
            callback(data);
        }
    });

如何通过Ajax请求使输入框预填充标签?
1个回答

7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接