Tach zusammen,
folgendes Problem:
Ich habe ein Textfeld und eine dazugehörige Listbox mit Begriffen von A-Z. Gibt der Anwender nun z.B. den Buchstaben G in das Textfeld ein, springt die Listbox auf den ersten Begriff, der mit dem Buchstaben G beginnt. So weit, so gut. Das lässt sich ja alles noch machen.
Ich hätte aber nun gerne, dass, wenn der Anwender z.B. Ge eingibt, die Listbox auf die Begriffe springt, die mit Ge beginnen. Gibt der Anwender Hab ein, springt die Listbox auf alle Begriffe mit Hab. Vergleichbar ist dies z.B. mit der Hilfe für MS Word. Da kann ich auch Buchstabenkombinationen eingeben, und die Listbox springt zu den entsprechenden Begriffen.
Ich hoffe, ich hab mich einigermaßen verständlich ausgedrückt. Die Frage ist nun, wie mache ich das mit HTML bzw. JavaScript?
Im voraus danke für jede Antwort.
MfG
Marcus
Ich hätte aber nun gerne, dass, wenn der Anwender z.B. Ge
eingibt, die Listbox auf die Begriffe springt, die mit Ge
beginnen. Gibt der Anwender Hab ein, springt die Listbox auf
alle Begriffe mit Hab.
naja, das verhalten sit betriebssytem-abhaengig…
ich habe es mal beispielhaft umgesetzt, aber es ist nciht sehr ergonomisch und ungewohnt.
var buffer='';
function search(e)
{
//das richtige event-objekt fuer ie und nn\>6 finden
e = window.event ? window.event:e;
e = e.keyCode;
//nur buchstaben
if (e\<65 || e\>90) { return; }
//nacheinander die zeichen zwischenspeichern
buffer += String.fromCharCode(e).toLowerCase();
e = document.forms[0].elements['foo'];
//durhc alle options laufen
for (z1=0;z1\<e.options.length;z1++)
{
//schauen ob der name der aktuellen option auf die eingetippten zeichen matched...
if ( String(e.options[z1].text).toLowerCase().match("^"+buffer) )
{ e.selectedIndex=z1; break; }
}
return false;
}
Choose your country:All CountriesAngolaArgentinaAustraliaAustriaBangladeshBelgiumBeninBotswanaBrazilBulgariaBurkina FasoCanadaChinaColombiaCosta RicaCote d’IvoireCroatiaCzech RepublicDenmarkEcuadorEgyptEl SalvadorEstoniaFinlandFranceGambiaGermanyGreeceGuatemalaGuinea-Bissau
Vielen Dank - Find ich schon ziemlich gut!;o) (nB)
.