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)); }