Recently, I had to do something very similar.
You need something like the following:
function fillAutoComplete(friends_list) {
$('input#opponents')
.keydown(function(event) {
var menuActive = $(this).data('autocomplete').menu.active;
if (event.keyCode === $.ui.keyCode.TAB && menuActive)
event.preventDefault();
})
.autocomplete({
source: function(request, response) {
var term = request.term.split(/[,;]\s*/).pop();
if (!term) {
response([]);
return;
}
var list = $.map(friends_list, function(item) {
return {
label: item.name,
value: item.name,
id: item.id
}
});
list = $.grep(list, function(item) {
return item.name.indexOf(term) === 0;
});
response(list);
},
focus: function() {
var terms = this.value.split(/[,;]\s*/);
terms.pop();
terms.push( ui.item.value );
this.value = terms.join(', ');
return false;
},
select: function(event, ui) {
var terms = this.value.split(/[,;]\s*/);
terms.pop();
terms.push(ui.item.value);
terms.push('');
this.value = terms.join(', ');
return false;
}
});
}
source
share