Werner: <SELECT><OPTION> Möglich den ganzen Inhalt zu sehen

Hallo,

ich habe folgendes Problem:

<SELECT name="currency" style="width:50">
    <OPTION value="EUR">Euro</OPTION>
    <OPTION value="GBP">British Pound</OPTION>
    <OPTION value="USD">US Dollar</OPTION>
</SELECT>

Das <SELECT> Feld muß diese Größe weil ich noch andere Input Felder
habe und die Größe aller Felder muß gleich sein.
Nun habe ich aber das Problem, daß im <OPTION> nicht alles angezeigt wird. Es gäbe ja den TITLE aber der funktioniert hier nicht (nur bei
INPUT, TEXTAREA ect.).
Weiß jemand ob es eine andere Möglichkeit gibt?

Danke
Werner

  1. Hallo,

    Hi,

    ich habe folgendes Problem:

    <SELECT name="currency" style="width:50">

    50 Kilometer soll das breit werden?
    Oder 50 Nanometer?
    Bei Längenangaben in CSS gilt, daß IMMER eine Längeneinheit angegeben werden MUSS.

    <OPTION value="EUR">Euro</OPTION>
        <OPTION value="GBP">British Pound</OPTION>
        <OPTION value="USD">US Dollar</OPTION>
    </SELECT>

    Das <SELECT> Feld muß diese Größe weil ich noch andere Input Felder
    habe und die Größe aller Felder muß gleich sein.
    Nun habe ich aber das Problem, daß im <OPTION> nicht alles angezeigt wird. Es gäbe ja den TITLE aber der funktioniert hier nicht (nur bei
    INPUT, TEXTAREA ect.).
    Weiß jemand ob es eine andere Möglichkeit gibt?

    Mir ist keine bekannt außer: Mach alle Felder breiter.

    Andreas

    1. <SELECT name="currency" style="width:50">

      50 Kilometer soll das breit werden?
      Oder 50 Nanometer?
      Bei Längenangaben in CSS gilt, daß IMMER eine Längeneinheit angegeben werden MUSS.

      Es gibt da so eine schöne Regel:
      "Sage niemals 'nie', 'muss immer' und 'steht fest'".
      Probier mal:
      <div id="xyz" style="width:100"></div>
      alert(document.getElementById("xyz").style.width);
      und du wirst sehen, dass Standardeinheit bei den meisten Browsern px ist.

      Gruß

      Axel

      1. <SELECT name="currency" style="width:50">

        50 Kilometer soll das breit werden?
        Oder 50 Nanometer?
        Bei Längenangaben in CSS gilt, daß IMMER eine Längeneinheit angegeben werden MUSS.

        Es gibt da so eine schöne Regel:
        "Sage niemals 'nie', 'muss immer' und 'steht fest'".
        Probier mal:
        <div id="xyz" style="width:100"></div>
        alert(document.getElementById("xyz").style.width);
        und du wirst sehen, dass Standardeinheit bei den meisten Browsern px ist.

        Was manche Browser meinen, ist irrelevant.
        Was bei CSS korrekt ist und was nicht, steht im Standard.
        Und korrekte Browser ignorieren fehlerhafte Werte.
        Ich würde mich nie darauf verlassen, daß Browser einen Fehler haben.

        Probier mal Dein Beispiel im aktuellen Mozilla. Der hat den Fehler nicht! Der alert ist leer!

        http://www.w3.org/TR/REC-CSS2/syndata.html#value-def-length

        The format of a length value (denoted by <length> in this specification) is an optional sign character ('+' or '-', with '+' being the default) immediately followed by a <number> (with or without a decimal point) immediately followed by a unit identifier (e.g., px, deg, etc.). After the '0' length, the unit identifier is optional.

        Einzige Ausnahme ist also 0. Nicht aber der Fall, daß px gemeint sein soll.

        Andreas

        1. Hallo Andreas,

          irgendwie hörst Du dich laut an, obwohl Du gar nicht in Großbuchsataben schreibst. Ich frage mich nun, woran das liegen könnte.

          Grüße

          Chris

      2. Guten Abend,

        Probier mal:
        <div id="xyz" style="width:100"></div>
        alert(document.getElementById("xyz").style.width);
        und du wirst sehen, dass Standardeinheit bei den meisten Browsern px ist.

        Bei den meisten Browsern?
        Opera 6.05: undefined
        Mozilla 1.0: leeres alert
        Netscape 7.0: leeres alert
        Netscape 4.7: document.getElementById is not a function. ;-)

        Die Tatsache, daß das im IE vielleicht funktioniert, heißt noch lange nicht, daß das richtig ist.

        Franz

  2. Hallo,

    ich habe folgendes Problem:

    <SELECT name="currency" style="width:50">
        <OPTION value="EUR">Euro</OPTION>
        <OPTION value="GBP">British Pound</OPTION>
        <OPTION value="USD">US Dollar</OPTION>
    </SELECT>

    Das <SELECT> Feld muß diese Größe weil ich noch andere Input Felder
    habe und die Größe aller Felder muß gleich sein.
    Nun habe ich aber das Problem, daß im <OPTION> nicht alles angezeigt wird. Es gäbe ja den TITLE aber der funktioniert hier nicht (nur bei
    INPUT, TEXTAREA ect.).
    Weiß jemand ob es eine andere Möglichkeit gibt?

    Danke
    Werner

    Hi Werner,

    schau mal hier:
    <html>
    <head>
    <title></title>
    <script language="JavaScript">
    <!--
    function breiter() {
      document.all.sel.style.width=100;
      return
    }
    function schmaler() {
      document.all.sel.style.width=50;
      return
    }
    //-->
    </script>
    <noscript></noscript>
    </head>
    <body >
    <SELECT name="currency" id="sel" style="width:50" onMouseOver="breiter();" onBlur="schmaler();">
        <OPTION value="EUR">Euro</OPTION>
        <OPTION value="GBP">British Pound</OPTION>
        <OPTION value="USD">US Dollar</OPTION>
    </SELECT>
    </body>
    </html>

    Einschränkung:
    MSIE-Syntax, kein Netscape. Möglich, dass mit dem neuen DOM-Modell (so es sich durchsetzt) auch bei netscape mal sowas wie :
    document.getElementById("sel").style.width=100;
    geht. Probiers einfach bei Netscape 6.x aus.

    Gruß

    Axel

    1. Hallo Axel,

      das ist eine interssante Idee. Ich musste es gleich ausprobieren. Nur schade, dass man erst in das Select-Feld hineinklicken muss, damit onBlur auch funktioniert.

      Könnte man da in breiter() den Focus auf das Feld setzen, damit onBlur sofort reagiert?

      Gruß

      Tom