input-feld mit dropdown menü abgleichen
marc
- javascript
Hallo Leute
Folgendes Problem:
Ich möchte in einem Formular dem Benutzer die Möglichkeit geben einen Hafen auszuwählen. Dazu soll er die Möglichkeit haben den Hafen durch eingabe des Hafen-Codes ODER durch auswahl aus einem sehr langem dropdown Menü (also so einem einzeiligen non-multiple Selection Feld) zu definieren. Im Dropdown Menü sollten die Häfen natürlich vollständig ausgeschrieben sein. Ist es möglich, dass der Benutzer den Code da eingibt und bei Verlassen (bzw noch bei der Eingabe) der Eingabe-Zeile die Markierung des Dropdown Menüs die Richtige Position automatisch findet? Er gibt also z.b "NY" in das Codefeld ein und rechts davon springt das Menü auf den Eintrag "New York". Umgekehrt wäre es auch praktisch, also Auswahl im Menü und der Code wird im Eingabefeld automatisch aktualisiert, bzw eingetragen. Die Auswahlliste ist nunmal sehr lang und alle Codes kennt auch keiner. Einfach die Auswahlliste markieren und "N" drücken bringt leider auch selten was, da ja vor "New York" noch zig andere kommen.
Ist das sehr kompliziert? Mir fiel es schwer dazu Information zu finden
Danke für Tipps oder Verweise an helfende Seiten
Ist das sehr kompliziert? Mir fiel es schwer dazu Information zu finden
vielleicht hilft dir das weiter?
http://home.arcor.de/struebig/js/short/optionliste.htm
Struppi.
vielleicht hilft dir das weiter?
Struppi.
Das hat mir tatsächlich sehr geholfen!
Danke sehr
leider kenn ich mich nicht genug mit js aus, umzu erkennen ob es auch möglich ist, dieses script für mehrere dropdowns+eingabezeilen zu benutzen. die feldnamen scheinen da sehr eingearbeitet zu sein.
bei mir sieht das so aus:
1. EINGABEZEILE -- DROPDOWN
2. EINGABEZEILE -- DROPDOWN
3. EINGABEZEILE -- DROPDOWN
vergessen zu erwähnen: die namen/IDs der dropdowns/felder sind dabei variabel (php script verteilt die namen, da es immer unterschiedliche anzahl von felder gibt)
ich müsste also hinter jedes dropdown ding ein kleines stück js haben, welches den namen des aktuellen feldes weitereichen kann.
vergessen zu erwähnen: die namen/IDs der dropdowns/felder sind dabei variabel (php script verteilt die namen, da es immer unterschiedliche anzahl von felder gibt)
ich müsste also hinter jedes dropdown ding ein kleines stück js haben, welches den namen des aktuellen feldes weitereichen kann.
Ich hab den Code mal ein wenig flexibler gemacht, den Rest musst du selber machen.
Struppi.
Danke, das ist ja prima jetzt
Hatte Dir noch eine Mail geschickt, aber die kam zurück. Hier der Inhalt:
Hallo Struppi
Du hattest mir im selfhtml Forum mit Deinem Link zum Thema Dropdown Liste
geholfen.
Nun hast Du ja Dein Script aktualisiert und ich hab es auch sofort
eingebaut, doch es lieferte bei meiner doch sehr komplexen Liste beim
"backspacen" immer einen Fehler und die Liste ist danach unvollständig:
"das objekt unterstützt diese eigenschaft oder methode nicht"
Es hat mich fast verrückt gemacht, weil das auf Deiner Demo-Seite nicht
passierte, bis ich dann einmal folgendes eingeben habe:
B - D - BACKSPACE - BACKSPACE
Nun lieferte auch Deine Demo-Seite den erwähnten Fehler. Jedenfalls im IE6.
(Mein Standard Browser 'Firebird' kann generell nicht korrekt backspacen,
aber ich bräuchte es eh nur für IE)
Die Fehlermeldung verweist auf folgende Zeile (Zeichen 12) in der selecter
function:
while(i--) list.options[i] = window[list.name][i];
Vielleicht hilft Dir das ja ein wenig, falls Du es ändern/verbessern
möchtest.
Danke jedenfalls für Deine Bemühungen bei meinem Problem,
Marc
zu lösen mit
for(var i = 0; i < window[list.name].length; i++){
list.options[i] = window[list.name][i];
}
statt
while(i--) list.options[i] = window[list.name][i];
glaub ich