Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

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.

  • Autor

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.

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.

  • Autor
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 :D

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.

Wenn ich zum Ausgrauen wieder JavaScript brauche, funktioniert es ja doch wieder nur MIT JavaScript :D

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.

  • Autor

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. ;)

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.

  • Autor
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 :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.