Phil Z.: Skript funkt. im Moz! Im IE aber nicht!

Hallo,

ich habe folgendes Skript um die display Eigenschaft zweier tabellen zu verändern.
Im Miz klappt es aber im IE komischerweise nicht. Woran liegts?

function einblenden_user(){
document.getElementById('a_form').style.display='none';
document.getElementById('u_form').style.display='block';
}
function einblenden_artist(){
document.getElementById('a_form').style.display='block';
document.getElementById('u_form').style.display='none';
}

<form>
<select name='type'>
<option value='user' selected='selected'onclick='einblenden_user()' style='cursor:pointer'>User</option>
<option value='artists'onclick='einblenden_artist()' style='cursor:pointer'>Artist</option>
</select>
</form>

<table id='a_form' style='display:none;'>
INHALT 1
</table>

<table id='u_form' style='display:block'>
INHALT2
</table>

Hoffe ihr könnt mir helfen.

mfg

Phil Z.

  1. hi,

    ich habe folgendes Skript um die display Eigenschaft zweier tabellen zu verändern.
    Im Miz klappt es aber im IE komischerweise nicht. Woran liegts?

    Wundert mich, ich hätte es jetzt eher andersherum erwartet.

    <table id='a_form' style='display:none;'>
    <table id='u_form' style='display:block'>

    Der Defaultwert der Eigenschaft display für Tabellen ist nicht block, sondern table - das sieht nur der IE ein bisschen anders.

    Weise also zum Sichtbarmachen der Tabellen nicht "block", sondern einfach einen Leerstring zu - damit nimmt jeder Browser wieder den Defaultwert (den, den er für richtig hält).

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Weise also zum Sichtbarmachen der Tabellen nicht "block", sondern einfach einen Leerstring zu - damit nimmt jeder Browser wieder den Defaultwert (den, den er für richtig hält).

      Also so?
      document.getElementById('a_form').style.display='none';
      document.getElementById('u_form').style.display='';
      }
      function einblenden_artist(){
      document.getElementById('a_form').style.display='';
      document.getElementById('u_form').style.display='none';
      }

      Funktioniert auch nicht. (IE7)

      mfg

      Phil Z.

      1. hi,

        Funktioniert auch nicht. (IE7)

        OK, dann liegt es wohl an deiner Form des Aufrufs der Funktion. (Warum hast du das eigentlich nicht erst mal ausprobiert, durch eine einfache Kontrollausgabe, ob die Funktion überhaupt aufgerufen wird? Das wäre mal ansatzweise sinnvolles Debugging - anstatt sich bei der Problembeschreibung immer wieder nur auf ein blödsinniges "funzt nicht" zurückzuziehen.)

        Der IE reagiert bei Options nicht auf onclick. Nutze onchange im Select.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Okay würde also so aussehen
          <select name='auswahl' onchange='auswahl()>

          aber wie sieht diese auswahl() in dem Fall aus?
          Sorry ich weiß echt es echt nicht.
          Ich würde es einmal geänder bekommen aber was ist wenn ich mich späer umentscheide und nochmal dazwischen wechseln muss. Ich weiß nicht wie ich es schaffe das es dann das andere ändert.

          1. hi,

            Okay würde also so aussehen
            <select name='auswahl' onchange='auswahl()>

            aber wie sieht diese auswahl() in dem Fall aus?
            Sorry ich weiß echt es echt nicht.

            Frage ab, welche Option ausgewählt wurde - und reagiere darauf.
            http://de.selfhtml.org/javascript/objekte/options.htm

            Ich würde es einmal geänder bekommen aber was ist wenn ich mich späer umentscheide und nochmal dazwischen wechseln muss. Ich weiß nicht wie ich es schaffe das es dann das andere ändert.

            Dann feuert onchange erneut, und du machst wieder das gleiche - aktuell gewählte Option ermitteln, reagieren.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Frage ab, welche Option ausgewählt wurde - und reagiere darauf.
              http://de.selfhtml.org/javascript/objekte/options.htm

              Sorry da blick ich irgendwie nicht ganz durch :(.

              Wie ermittel ich welche Option nun aktiviert wurde?

              Help.

              Phil Z.

              1. hi,

                Frage ab, welche Option ausgewählt wurde - und reagiere darauf.
                http://de.selfhtml.org/javascript/objekte/options.htm
                Sorry da blick ich irgendwie nicht ganz durch :(.

                Wie ermittel ich welche Option nun aktiviert wurde?

                selectedIndex

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. Hi.

                  selectedIndex

                  Okay das probier ich nacher mal aus, mus sjetzt weg. Danke für deine bisherige Hilfe.

                  Bis dann

                  Phil Z.

  2. Hallo,

    hier ein neuer Versuch, der leider auch nicht klappt.

    function auswahl(){
    var type = document.checkAllForm.alter.options[document.checkAllForm.type.selectedIndex].value;
    if(var type = "user")
    document.getElementById('a_form').style.display='none';
    document.getElementById('u_form').style.display='';
    } elseif (var type = "artists") {
    document.getElementById('a_form').style.display='none';
    document.getElementById('u_form').style.display='';
    }
    }

    <form>
    <select name='type' onchange='auswahl()'>
    <option value='user' selected='selected' name='user'style='cursor:pointer'>User</option>
    <option value='artists' name='artists'style='cursor:pointer'>Artist</option>
    </select>
    </form>

    Hoffe ihr könnt mir helfen.

    LG

    Phil z.

    1. hi,

      hier ein neuer Versuch, der leider auch nicht klappt.

      Lernst du jetzt bitte endlich mal, dass "klappt nicht" keine Problembeschreibung, sondern Bullshit ist?

      if(var type = "user")

      Das ist eine Zuweisung, kein Vergleich.
      Ausserdem ist das Keyword var dort fehl am Platze, schliesslich hast du die Variable ja darüber schon deklariert.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hi.
        function auswahl(){
        $type = document.checkAllForm.alter.options[document.checkAllForm.type.selectedIndex].value;
        if($type == "user")
        document.getElementById('a_form').style.display='none';
        document.getElementById('u_form').style.display='';
        } else if($type == "artists")  {
        document.getElementById('a_form').style.display='none';
        document.getElementById('u_form').style.display='';
        }
        }

        <form>
        <select name='type' onchange='auswahl()'>
        <option value='user' selected='selected' name='user'style='cursor:pointer'>User</option>
        <option value='artists' name='artists'style='cursor:pointer'>Artist</option>
        </select>
        </form>

        Die Brwoser reagieren nicht darauf.

        mfg

        Phil

        1. hi,

          $type = document.checkAllForm.alter.options[document.checkAllForm.type.selectedIndex].value;

          Warum fängst du jetzt an, Variablen PHP-style zu benennen?

          Die Brwoser reagieren nicht darauf.

          Wenn das der exakte Code ist, reagieren sie ganz sicher mit Fehlermeldungen. Du versuchst nämlich auf ein Formular document.checkAllForm zuzugreifen, welches aber gar nicht existiert.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }