У меня есть вход (textarea), к которому применяются теги Select2. Поэтому, когда пользователь вводит имя элемента, существующего в моей базе данных, он отображает список совпадающих элементов, и пользователь может выбрать один и создать тэг.Создание новых тегов в теге Select2 textarea
Вот мой код до сих пор для базовой функциональности тегов:
$('#usualSuppliers').select2({
placeholder: "Usual suppliers...",
minimumInputLength: 1,
multiple: true,
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,
page_limit: 10
};
},
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);
}
});
Есть ли способ для нового тег должен быть создан, если текст набран не существует? Вначале я думал, что это может быть сделано путем разграничения с пробелами, но некоторые элементы (имена поставщиков) будут содержать пробелы в них, так что это не сработает.
Я думаю, что когда совпадений не найдено, пользователю нужно как-то «создать» тег, нажав кнопку, которая может появиться в раскрывающемся списке, но я понятия не имею, как это сделать.
Как я могу разрешить пользователям создавать новые теги, которые могут иметь пробелы в них и все еще иметь возможность добавлять больше тегов, существующих или иначе?
Использование с 'textarea' с тех пор устарело,'