Проблема
У меня есть текстовый ввод, который я выбрал как теги, которые отлично подходят для запроса удаленных данных, я могу искать и даже создавать новые элементы, используя это, и все работает нормально.
Использование selectize:
var $select = $('.authorsearch').selectize({
valueField: 'AuthorId',
labelField: 'AuthorName',
searchField: ['AuthorName'],
maxOptions: 10,
create: function (input, callback) {
$.ajax({
url: '/Author/AjaxCreate',
data: { 'AuthorName': input },
type: 'POST',
dataType: 'json',
success: function (response) {
return callback(response);
}
});
},
render: {
option: function (item, escape) {
return '<div>' + escape(item.AuthorName) + '</div>';
}
},
load: function (query, callback) {
if (!query.length) return callback();
$.ajax({
url: '/Author/SearchAuthorsByName/' + query,
type: 'POST',
dataType: 'json',
data: {
maxresults: 10
},
error: function () {
callback();
},
success: function (res) {
callback(res);
}
});
}
});
Текстовое поле:
<input class="authorsearch" id="Authors" name="Authors" type="text" value="" />
Примеры:
Затем, когда я выбираю один (в данном случае "яблоко" ), он появляется в значке, как и следовало ожидать, а базовое значение текстового поля представляет собой список значений этих элементов, разделенных запятыми.
Текущий выход
Проблема заключается в том, что я загружаю страницу и хочу, чтобы значения, полученные из базы данных, отображались в выбранном текстовом вводе как теги, она загружает только значения, и я не вижу способа отображения отображаемого имени.
<input class="authorsearch" id="Authors" name="Authors" type="text" value="1,3,4" />
Желаемый вывод
Я пробовал всевозможные значения для поля значений входов, чтобы он загружал элементы, показывая их отображаемое имя, а не их значения. Ниже приведен пример одного объекта, возвращаемого как JSON, возможность загрузки массива JSON из них в качестве выбранных тегов будет идеальной.
[{"AuthorId":1,"AuthorName":"Test Author"},
{"AuthorId":3,"AuthorName":"Apple"},
{"AuthorId":4,"AuthorName":"Test Author 2"}]
Как я могу это сделать? Нужно ли мне форматировать значение текстового поля, или мне нужно загрузить мои существующие значения с помощью javascript?