FinalFantasy Geschrieben 11. Juli 2010 Geschrieben 11. Juli 2010 Hi, gibts ne einfache Möglichkeit in HTML eine ComboBox, aber mit editierbaren Text (falls keine Auswahl passt) zu machen, ohne großartig mit JavaScript rumzubasteln? Oder zumidnest via Radiobuttons entweder ein LineEdit oder eine Auswahlbox aktiv zu schalten? Zitieren
Toothrot Geschrieben 13. Juli 2010 Geschrieben 13. Juli 2010 gibts ne einfache Möglichkeit in HTML eine ComboBox, aber mit editierbaren Text (falls keine Auswahl passt) zu machen, ohne großartig mit JavaScript rumzubasteln? Soweit ich weiß nicht. Oder zumidnest via Radiobuttons entweder ein LineEdit oder eine Auswahlbox aktiv zu schalten? Das sollte funktionieren. Kommt darauf an, was Du mit "aktiv schalten" meinst. Zitieren
FinalFantasy Geschrieben 13. Juli 2010 Autor Geschrieben 13. Juli 2010 Mit aktiv schalten meinte ich, das jeweils nicht benutzte Control auszugrauen/disablen, wie auch immer man das nennen will. Ich hab aber jetzt schon einfachen JS-Code gefunden, der einigermaßen das tut, was ich will: <script type="text/javascript"> function comboBox(el) { var val = el.options[el.selectedIndex].value; if(!val) { var input = document.createElement('input'); el.parentNode.appendChild( input ); el.style.display = 'none'; input.onblur = function() { var new_val = input.value; el.style.display = ''; el.parentNode.removeChild( input ); if(new_val) { var o = new Option(new_val, new_val); var l = el.options.length; var tmp = el.options[l - 1]; el.options[l -1] = o; el.options[l] = tmp; el.selectedIndex = l - 1; } }; } } </script>[/PHP] Das einzige was mir nicht gefällt ist, dass er die Eingabe erst in die Combobox übernimmt wenn das LineEdit den Focus verliert... dabei sendet im LineEdit leider auch schon ein Durck auf Enter das Formular ab, statt nur die Eingabe in die Combobox zu übernehmen. Das kann man aber bestimmt auch noch fixen. Zitieren
Toothrot Geschrieben 13. Juli 2010 Geschrieben 13. Juli 2010 Ich würde eine Variante verwenden, die auch ohne Javascript funktioniert. Zum Beispiel die Variante mit Radiobutton. Ausgrauen ist dann mit JavaScript kein Problem und das Formular funktioniert auch ohne JS wie es soll. Zitieren
FinalFantasy Geschrieben 13. Juli 2010 Autor Geschrieben 13. Juli 2010 Ich würde eine Variante verwenden, die auch ohne Javascript funktioniert. Zum Beispiel die Variante mit Radiobutton. Ausgrauen ist dann mit JavaScript kein Problem und das Formular funktioniert auch ohne JS wie es soll. Wenn ich zum Ausgrauen wieder JavaScript brauche, funktioniert es ja doch wieder nur MIT JavaScript Ich würde auch eine Methode komplett ohne JS bevorzugen, hab aber leider noch keine Möglichkeit gefunden, wie das ohne JS gehen sollte. Möglich wäre natürlich ein LineEdit UND die ComboBox anzuzeigen und dem User alles zu überlassen. Aber wie reagiere ich dann, wenn in der ComboBox was ausgewählt ist UND im LineEdit Text steht? Das ist mir leider zu unsicher. Zitieren
Toothrot Geschrieben 13. Juli 2010 Geschrieben 13. Juli 2010 Wenn ich zum Ausgrauen wieder JavaScript brauche, funktioniert es ja doch wieder nur MIT JavaScript Ausgrauen ist zur korrekten Funktion des Formulars nicht notwendig, das ist reiner Schnickschnack. Ich würde auch eine Methode komplett ohne JS bevorzugen, hab aber leider noch keine Möglichkeit gefunden, wie das ohne JS gehen sollte. Du könntest die Auswahl komplett per Radiobuttons lösen. Jeweils ein Radiobutton pro Auswahlmöglichkeit und ein zusätzlicher für einen händischen Eintrag. Möglich wäre natürlich ein LineEdit UND die ComboBox anzuzeigen und dem User alles zu überlassen. Aber wie reagiere ich dann, wenn in der ComboBox was ausgewählt ist UND im LineEdit Text steht? Das ist mir leider zu unsicher. Indem Du dem User per Radiobutton die Auswahl von Eingabefeld oder Auswahlliste anbietest. Dann wertest Du aus, welcher Radiobutton ausgewählt wurde und übernimmst dann den entsprechenden Wert. Zitieren
FinalFantasy Geschrieben 13. Juli 2010 Autor Geschrieben 13. Juli 2010 Deine Einwände sind richtig. ComboBox und Lineedit per Radiobutton ginge, auch alle Möglichkeiten + Lineedit per Radiobutton ginge. Ich würde das auch verstehen und könnte es benutzen. Aber wenn sich da nichts ausgraut und ich da meinen Vater davorsetze, wäre er mit Sicherheit völlig planlos, was er denn da jetzt machen sollte und wie er es benutzen sollte. Man darf nicht immer davon ausgehen, dass das nur von einem Informatiker (oder IT-Interessierten) benutzt wird/werden soll. Zitieren
Toothrot Geschrieben 13. Juli 2010 Geschrieben 13. Juli 2010 Ich kenne Deine Zielgruppe nicht. Ich denke, dass so gut wie alle Leute, die eingen Computer benutzen, mit der Funktionsweise von Radiobuttons vertraut sind. Demnach wäre die Variante, alle Einträge als Radiobuttons zu gestalten, vielleicht die beste. Man könnte natürlich argumentieren, dass weniger versierte Nutzer eher selten JavaScript deaktiviert haben und entsprechend ausgegraut wird. Zitieren
FinalFantasy Geschrieben 13. Juli 2010 Autor Geschrieben 13. Juli 2010 Ich kenne Deine Zielgruppe nicht. Ich denke, dass so gut wie alle Leute, die eingen Computer benutzen, mit der Funktionsweise von Radiobuttons vertraut sind. Autsch, ganz schwerer Irrtum, nach meiner Erfahrung. Viele kennen das zwar und benutzen es auch, haben aber eigentlich keine Ahnung, wie es funktioniert. Wenn da keine optische Unterstützung da ist, was sie da gerade aktivieren, va. wenn da auch noch ein Eingabefeld dabei ist, siehts oft düster aus. Meine Zielgruppe sind zwar Forenbenutzer, aber nicht die typischen IT-Interessierten. Was mich an den Radiobuttons für jede Option stört, ist dass es das Formular mit der Zeit deutlich in die Länge zieht. Selbst wenn es nur 10 Optionen sind, ist eine Combobox da wesentlich übersichtlicher. Falls Javascript deaktiviert ist, kann man nur die Möglichkeit nicht nutzen, neue Werte einzutragen, was ja im Laufe der Zeit immer seltener nötig sein sollte. Bis jetzt haben es jedenfalls gut 30 Leute geschafft, das Teil zu benutzen Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.