选择“不会在下拉列表中呈现”

selectize doesn't render inside dropdown

本文关键字:下拉列表 选择      更新时间:2023-09-26

我正在尝试使用 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)">

如果该人开始输入"稻草",则返回的内容如下。

{"COLUMNS":["PKID","TAG"],"DATA":[[1475,"strawberries"]]}

这正是它应该返回的内容,但不确定为什么我没有在下拉列表中看到"草莓"作为选择。我只看到"稻草",这是我输入的。

问题是代码期望:

[{"PKID":1475,"TAG":"strawberries"}]

但我给了它:

{"COLUMNS":["PKID","TAG"],"DATA":[[1475,"strawberries"]]}