我尝试使用selectize.js根据用户输入从数据库填充文本框,但它没有在下拉列表中呈现。我从数据库中获取了正确的数据,但不知道如何让它呈现。也许JSON没有正确形成?
这是JS:
var $select = $('#tags').selectize({
delimiter: ',',
persist: false,
valueField: 'PKID',
labelField: 'TAG',
searchField: ['TAG'],
maxOptions: 10,
create: true,
render: {
option: function (item, escape) {
return '<div>' + escape(item.TAG) + '</div>';
}
},
load: function (query, callback) {
if (!query.length) return callback();
$.ajax({
url: '/components/nl',
type: 'POST',
dataType: 'json',
data: {
method: 'getTags',
tag: query,
maxresults: 10
},
error: function () {
callback();
},
success: function (res) {
callback(res);
}
});
}
});
这是输入框:
<input id="tags" class="selectize" type="text" name="tags" value="" placeholder="Tags separated by commas (optional)">
如果此人开始输入&#34; straw&#34;那么这里会有什么回复。
{"COLUMNS":["PKID","TAG"],"DATA":[[1475,"strawberries"]]}
这正是它应该归还的东西,但不确定为什么我不会看到&#34;草莓&#34;作为下拉菜单中的一个选择。我只看到&#34;稻草&#34;这就是我输入的内容。
答案 0 :(得分:0)
问题是代码期待:
[{"PKID":1475,"TAG":"strawberries"}]
但我正在给它:
{"COLUMNS":["PKID","TAG"],"DATA":[[1475,"strawberries"]]}