使用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);
}
});
},
});
关于为什么这些价值观不同的任何建议都将非常感激。
答案 0 :(得分:0)
通过查看代码。选择检查是否已从多选中初始化,然后返回项目,否则它将项目连接到字符串。您仍然可以使用selectize.items而不是selectize.getValue()
来获取项目