有一个已知issue selectize.js,如果某个项具有相同的valueField,则只会显示第一个值。这也适用于远程数据源。
例如:
- value: 1, label: Apple
- value: 1, label: Steve
- value: 2, label: Google
- value: 2, label: Eric
如果我搜索Google,它会按预期给出一个结果。但如果我现在搜索埃里克;因为已经显示了2的值,所以不会显示。如果我刷新页面然后搜索Eric就可以了;但现在我无法搜索谷歌
这是我的代码:
$('#supplier').selectize({
valueField: 'value',
labelField: 'label',
searchField: 'label',
options: [],
create: false,
render: {
option: function(item, escape) {
return '<div class="customer-badge suggestions">' +
'<div class="avatar">' +
'<img src="' + escape(item.avatar) + '" alt="">' +
'</div>' +
'<div class="details">' +
'<a href="#" class="name">' +
escape(item.label) +
'</a>' +
'<span class="email">' +
escape(item.email) +
'</span>' +
'</div>' +
'</div>';
}
},
load: function(query, callback) {
if (!query.length) return callback();
$.ajax({
url:'<?php echo site_url("receivings/supplier_search");?>'+'?term='+encodeURIComponent(query),
type: 'GET',
error: function() {
callback();
},
success: function(res) {
res = $.parseJSON(res);
callback(res);
}
});
}
});
我尝试了以下内容:
使用https://github.com/BlueBayTravel/selectize.js/tree/allow-duplicates替换整个代码,并设置选项duplicate: true
和mode: "multi"
。这并没有改变行为。我认为他们可能只针对本地数据源做了解决方案。
试图找出关于issue page的讨论;但这是旧版本;我尽了最大努力,却无法让它发挥作用。
此时我将采取任何脏补丁,因为这是一个主要问题,我不知道为什么没有以任何方式解决这个问题