Announcement

Collapse
No announcement yet.

SelectBox: Anzeige der Einträge verhindern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SelectBox: Anzeige der Einträge verhindern

    Moin,

    Gibt es eine Möglichkeit beim Klick auf eine SelectBox die Anzeige der Einträge (Option-Tags) zu unterdrücken?

    Mit dem Code

    Code:
    function hide(e)
    {
    if (window.event && window.event.srcElement && window.event.srcElement.tagName && window.event.srcElement.tagName.toLowerCase() == "select")
     {
    ?? 
    return true;
     }
    }
    kann man das Eventhandling auf die Funktion hide umbiegen, aber wie unterdrückt man - sofern möglich- die Anzeige. Das setzen des Selects auf hidden oder display:none oder disabled solle nicht passieren

    Christian
    Christian

  • #2
    Hallo Christian,

    mir ist nicht ganz klar was du genau bezwecken möchtest. Du möchtest eine Select-Box die Einträge enthält, jedoch beim Ancklicken nicht aufklappt aber sie soll nicht deaktiviert sein!?
    Nun ist die Funktionalität des Aufklappens grundlegend wohl relativ fest in den Browsern verankert. Alle Versuche die Option-Einträge mittels Styles nach ausserhalb des Sichtbereiches zu verschieben scheitern. Einzige Möglichkeit die mir einfällt ist das Element nicht anklickbar, bzw. nicht fokusierbar zu machen. Dazu einfach im onfocus-Event die Methode blur() aufrufen.
    HTML Code:
    ...
    <select size="1" onfocus="this.blur();" onclick="this.blur();">
      <option>Test1</option>
      <option>Test2</option>
      <option>Test3</option>
    </select>
    Im FF und IE genügt onfocus="this.blur();". Wobei der IE hier bei entsprechend schnellen mehrfachen Klicks, die Options trotzdem anzeigt. Opera ignoriert onfocus irgendwie ganz, hier ist dann noch zusätzlich onclick="this.blur();" notwendig, was dann auch im IE recht zuverlässig das Aufklappen verhindert. Allerdings gibt es ein unschönes Flackern, da die Options eben ganz kurz zu sehen sind.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Das habe ich befürchtet.

      Ziel ist es, die Einträge der Selectbox durch ein anderes Element anzuzeigen. Hier durch ein dynamisch erzeugtes DIV, welches absolute positioniert wird.

      Grund ist eine Kundenanforderung, dass

      - die Einträge nicht abgeschnitten werden (Problem des IE, wenn die SelectBox kleiner ist als der längste Eintrag)

      - Einträge nicht abgeschnitten werden am Bildschirmrand. Vielmehr sollen die Eintrage im DIV dann in Richtung Bildschrimmitte verschoben werden.

      Den Sinn habe ich nicht zu hinterfragen.....
      Christian

      Comment


      • #4
        Originally posted by Christian Marquardt View Post
        Den Sinn habe ich nicht zu hinterfragen.....
        OK, das erklärt es...

        Da würde mir jetzt nur folgendes einfallen:
        - Deklaration im HTML ganz normal als Selectbox, damit SuMas, alternative Browser und Clients ohne JS damit klarkommen.
        - durchsuchen des Select-Elements nach option und "verstecken" der gefundenen in dem Container-Div
        - Ersetzen des select-Elements durch ein normales Text-Input, das per passendem Style (Hintergrundbild, right-padding) optisch in eine "Selectbox" verwandelt wird.
        - per onclick der "neuen Selectbox" wird dann das Container-Div angezeigt
        - das Container-Div muß dafür sorgen, dass beim anklicken der Text in das erzeugte Text-Input geschrieben wird.

        Viel Aufwand, aber wenn es der Kunde wünscht (und bezahlt) ...

        Gruß Falk

        P.S.: evtl. gibts ja bei mootools oder jQuery schon Plugins die sowas machen...
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Danke, werde mal schauen
          Christian

          Comment

          Working...
          X