Das wohl bekannteste autocomplete-Javascript, auf Basis von jQuery, ist wohl jQuery autocomplete :-)
klingt komisch – ist aber so :-)
Seit jQuery UI ein autocomplete Widget enthält, hat der Entwickler des alten Plugins dieses für „deprecated“ gekennzeichnet.
Mit jQuery UI sind aber eine Vielzahl an Funktionen, die das alte autocomplete angeboten hat, weggefallen.
Meiner Meinung nach eine sehr brauchbare Funktion war „selectFirst“, womit immer das erstgewählte Element in der DropDown-Liste vorselektiert ist.
Dieses Feature wird zwar nicht in jQuery UI autocomplete Einzug finden, allerdings haben die Entwickler hier eine Erweiterung zur Verfügung gestellt.
Einfach folgenden Code in seine Seite einfügen:
(function( $ ) { $( ".ui-autocomplete-input" ).live( "autocompleteopen", function() { var autocomplete = $( this ).data( "autocomplete" ), menu = autocomplete.menu; if ( !autocomplete.options.selectFirst ) { return; } menu.activate( $.Event({ type: "mouseenter" }), menu.element.children().first() ); }); }( jQuery ));
Dadurch kann man die Funktion in jQuery UI autocomplete doch verwenden:
$("input#autocomplete").autocomplete({ source: ["php", "html", "mysql", "css"], selectFirst: true });
Ganz glücklich bin ich allerdings nicht mit jQuery UI autocomplete, wenn man sich alle Funktionen nachbauen muss, kann man schon fast auf das Widget verzichten.
Weitere Infos und Demos zum jQuery UI autocomplete Widget
Diese Erweiterung funktioniert im IE6 nicht, wenn bgiframe verwendet wird. Meine Lösung dazu ist, Zeile 11 zu erstetzen durch:
Viele Grüße!!!
Danke für den Hinweis – aber nach 10 Jahren IE6 habe ich mich dazu entschlossen ihn nicht mehr weiter zu berücksichtigen.
Irgendwann muss das ein Ende haben, aber dennoch ein guter Tipp/Hinweis!
Auto-Focus hat die Funktion nun…
„autoFocus: If set to true the first item will be automatically focused.“
http://docs.jquery.com/UI/Autocomplete#option-autoFocus