使用Rails和远程数据加载Selectize.js - 返回逗号分隔的字符串而不是数组

时间:2014-12-13 00:48:26

标签: javascript ruby-on-rails multi-select selectize.js

使用selectize.js,标准多重选择返回一个字符串数组:["1","2","3"]这与以下代码完美配合:

$('.selectize').selectize();

由于拥有大量数据,我想使用远程数据加载,但在设置选择方式时,我会返回["1,2,3"]而不是所需的["1","2","3"]

以下是代码:

var formatName = function(item) {
    return $.trim((item.first_name || '') + ' ' + (item.last_name || ''));
};

$('.selectize-contacts').selectize({
    delimiter: ',',
    valueField: 'id',
    labelField: 'name',
    searchField: ['first_name', 'last_name', 'email'],
    sortField: [
        {field: 'first_name', direction: 'asc'},
        {field: 'last_name', direction: 'asc'}
    ],
    options: [],
    create: false,
    render: {
        item: function(item, escape) {
            var name = formatName(item);
            debugger;
            return '<div>' + (name ? '<span class="name">' + escape(name) + '</span>' : '') + '</div>';

        },
        option: function(item, escape) {
            var name = formatName(item);
            return '<div>' + escape(name) + '</div>';
        }
    },
    load: function(query, callback) {
        if (!query.length) return callback();
        $.ajax({
            url: $(".selectize-contacts").data("search") + '?q=' + query,
            type: 'GET',
            error: function() {
                callback();
            },
            success: function(data) {
                callback(data);
            }
        });
    },

});

关于为什么这些价值观不同的任何建议都将非常感激。

1 个答案:

答案 0 :(得分:0)

通过查看代码。选择检查是否已从多选中初始化,然后返回项目,否则它将项目连接到字符串。您仍然可以使用selectize.items而不是selectize.getValue()

来获取项目