我正在使用带有 typeahead/bloodhound 的 bootstrap-tokenfield。
我可以防止相同的标记在标记字段中被使用两次,但相同的标记仍然出现在预先输入的响应中。如何排除令牌字段中已经存在的令牌?
var engine = new Bloodhound({
remote: {
url: API_URL + '?action=message_friends&q=%QUERY',
filter: function (response) {
return $.map(response.users, function (user) {
return {
value: user.user_id,
label: user.name
};
});
}
},
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace
);
engine.initialize();
$('#to-tags').tokenfield({
typeahead: [
{
hint: false
},
{
name: 'users',
displayKey: 'label',
source: engine.ttAdapter()
}
]
}).on('tokenfield:createtoken', function (event) {
var existingTokens = $(this).tokenfield('getTokens');
$.each(existingTokens, function(index, token) {
if (token.value === event.attrs.value) {
event.preventDefault();
}
});
});