jQuery UI autocomplete versagt leider, wenn nur Begriffe aus der Liste ausgewählt werden dürfen. Die eingebaute option mustMatch: true funktioniert leider gar nicht. Deshalb eine Funktion, die Abhilfe schafft.
function jQueryUIAutoCompleteMustMatch(input) {
var found = 0;
var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( jQuery.trim($(input).val()) ) + "$", "i" );
jQuery.each($('.ui-autocomplete li'), function(i, val) {
if(jQuery.trim( $(val).text() ).match( matcher ) ) {
found = 1;
}
});
if (found) {
return true;
}
else
{
$(input).val('');
return false;
}
}Und dann
change: function(event, ui) {
jQueryUIAutoCompleteMustMatch($(this));
}