在Select2输入框中选择2个预加载的标签

时间:2013-11-22 12:38:46

标签: javascript jquery autocomplete jquery-select2

我有一个非常好的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 个答案:

答案 0 :(得分:7)

由于这篇文章,我设法解决了这个问题:

Load values in select2 multiselect

使用触发器。