Nach längerer Google-Suche mit extrem aufgeplusterten Beispielcodes, wollte ich mal in die Runde fragen, ob es eine
schlanke Lösung für das Autocomplete bei HTML-Formularen gibt (siehe Screenshot aus dem Forum)?
In einem Perl-Forum hatte ich folgenden übersichtlichen Code gefunden, der dann mit
<input type=text name=suchename value='' size=40 class=klein autocomplete=on onkeyup="komplett(this);">
angesteuert wird. Der reicht aber leider nicht ganz für die Zwecke aus und funktioniert wohl auch nicht im Firefox.
Zitat:
<script LANGUAGE="JavaScript" type="text/javascript" type="text/javascript">
<!--
Begriff = new Array($autocomplete);
function komplett(feld) {
sname = feld.value.toLowerCase();
for (i=0; i < Begriff.length; i++) {
if (Begriff[i].toLowerCase().indexOf(sname)==0 && sname.length!=Begriff[i].length) {
feld.value=Begriff[i];
(range=feld.createTextRange()).moveStart('characte r',sname.length);
range.select();
break;
}
}
}
// -->
</script>
|
Die Variable $autocomplete wird mit kommaseparierten Daten gefüllt:
'Name1', 'Name2', ... 'Name2047'
Da es sich letztlich um 50.000 Datensätze aufwärts handelt, muss die Lösung recht schlank sein und sollte nach Möglichkeit nicht mit jedem eingetippten Buchstaben eine Datenbankabfrage initiieren. Die Daten sollten also vorgeladen werden.