Volkmar Eusch: Status einer Select-Box abfragen

Hallo,
wie kann ich mit JavaScript den Status einer Select-Box abfragen?
Ein Formular soll bei Betätigen der ENTER-Taste mittels document.FORM01.submit(); versendet werden.
Wenn allerdings vom Anwender eine Select-Box geöffnet wurde, so soll die ENTER-Taste nur den gewünschten Wert übernehmen wie es in normalen Formularen üblich ist. Bei der Box handelt es sich um den type "select-one" mit der size=1. Wenn sie aufgeklappt ist ändert sich die size nicht.

lG Voik

  1. Hi Voik,

    ich dachte bisher immer, bei select-one wird automatisch das ausgewählte Element uebertragen. Fall nicht, fuege bei Dir ein hidden-Feld namens my_hidden_feld ein, das Du als Uebergabe-Parameter fuer den Funktionsaufruf beim Server auch machst. Dann:

    beim FORM-Tag gibst Du ein

    onSubmit="pruefe_funktion()"

    dann:

    function pruefe_funktion() {
       if (document.forms[0].my_select_box.selectedIndex > -1)
          document.forms[0].my_hidden_feld=document.forms[0].my_select_box.options[document.forms[0].my_select_box.selectedIndex].value;
       return true;
    }

    Somit wird in das my_hidden_feld der ausgewaehlte Wert eingetragen und beim Submit uebermittelt. return true -> mache submit.

    Gruß

    Hans

    1. Hallo Hans,
      mein Problem ist nicht, das die Select-Box nicht übertragen wird. Das Eigentliche Problem tritt auf, wenn der Anwender in eine Select-Box clickt (oder Alt-Taste + "Pfeil nach unten") und die Box geöffnet wird.
      Dort möchte er den Wert der Selectbox ändern und mit ENTER die Box wieder schließen. Das Submit darf in diesem Fall noch nicht ausgelöst werden. So funktioniert das auch in den Windows 32-bit Programmen. Ich habe aber noch keine sichere Methode gefunden, festzustellen, ob die Box offen oder geschlossen ist.

      cu Voik

      1. Moin!

        Ich habe aber noch keine sichere Methode gefunden, festzustellen, ob die Box offen oder geschlossen ist.

        Der "Klappstatus" einer SELECT-Box ist per Javascript auch nicht zugänglich.

        Aber beim Aktivieren der Box wird onfocus und beim Verlassen onblur ausgelöst. Ob das aber hilft? onblur kommt nicht, sobald die Liste wieder zugeklappt ist, sondern erst, wenn der Fokus woanders hin verschwindet.

        Abgesehen davon: In einer Liste wählt man tastaturmäßig üblicherweise so, dass man mit dem Tabulator reinspringt, mit den Cursortasten auswählt, und mit dem _TABULATOR_ das Feld wieder verläßt. Die Return-Taste ist hierbei absolut böse - auch in den meisten normalen Windows-Programmen nutzt man ausschließlich den Tabulator zum Springen zwischen den Elementen, Return führt meist die Funktion der OK-Taste aus.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
        1. Vielen Dank für die Info,
          da werd ich mich wohl auf den onclick bzw. den keyboard shortcut aufhängen müssen. Mit onBlur komme ich hier leider nicht weiter.