rainer TMS: innerHTML beim IE fürn Mac

Hallo,

ich hab ein blödes Problem mit dem innerHTML beim InternetExplorer vom Macintosh; beim Windows IE, Mozilla, Netscape usw. funktioniert es tadellos.
Bei der ganzen Sache geht es um einen Online Shop, bei dem man Artikel in verschiedenen Größen auswählen kann -> artikel_nr[]. Je nach gewählter Größe soll die Menge der noch bestellbaren
Artikel -> menge[] angepasst werden -> das Select-Menü menge[] als innerHTML von qty_select_box wird neu geschrieben.

Jetzt das eigentliche Problem, dass nur beim MacIE auftritt: wenn das Formular nun abgeschickt wird, kommt beim Empfänger-Script menge[] im Post nicht mehr an.

menge und article_nr müssen übrigens [] Arrays sein, weil auf das Empfäger Script auch noch mit mehrElementigen menge, etc. Arrays zugegriffen wird.

Gibts noch ne andere Möglichkeit die <options> zu beeinflussen?
Wenn garnichts klappt: wie kann ich per java (oder php) den MAC-IE filtern, so dass das Script erst garnicht ausgeführt wird?

Vielen Dank für eure Hilfe, Rainer

Achja, der Code:

<script type="text/javascript">
  function qty(anr){
    var qty;
    switch(anr){
      case "10081": qty = 3; break;
      default: qty = 5;break;
    }

var inner_html = '<select name="menge[]">';
    for(i = 1; i <= qty; i++){
      inner_html += '<option value="' + i + '">' + i + '&nbsp;</option>';
   }
                 document.getElementById('qty_select_box').innerHTML = inner_html + '</select>';
}
</script>

<select name="artikel_nr[]" onchange="qty(this.value);">
  <option value="x">wählen</option>
  <option value="10081">L</option>
  <option value="10082">XL</option>
</select>

<div id="qty_select_box">
  <select name="menge[]">
    <option value="1">1&nbsp;</option>
    <option value="2">2&nbsp;</option>
    <option value="3">3&nbsp;</option>
    <option value="4">4&nbsp;</option>
    <option value="5">5&nbsp;</option>
  </select>
</div>

  1. Hallo,

    <select name="artikel_nr[]" onchange="qty(this.value);">

    also ich benutze hier immer this.options[this.options.selectedIndex].value, denn das "select" hat keinen "value".
    Solltest Du weiter Probleme haben, bau zum Debuggen mal ein paar alerts ein. Ansonsten kann man innerHTML auch durch (einige) createElement und appendChild ersetzen.

    Gruß, Jürgen

    1. Hallo  Jürgen,

      Ansonsten kann man innerHTML auch durch (einige) createElement und appendChild ersetzen.

      ein vielleicht geeignetes Beispiel dazu findet sich hier: Lauftext per innerHTML und createTextNode.

      Grüsse

      Cyx23

      1. Hallo,

        wobei gerade hier innerHTML überhaupt keinen Sinn macht, da der Lauftext ja keine HTML-Elemente enthalten darf.

        Gruß, Jürgen

        1. Hallo Jürgen,

          wobei gerade hier innerHTML überhaupt keinen Sinn macht, da der Lauftext ja keine HTML-Elemente enthalten darf.

          kann ich so nicht nachvollziehen, meinst du bei Lauftext wäre innerText "sinnmachender"?
          Allerdings ist bezogen auf das Ausgangsposting wohl eine entsprechnede Betrachtung bei createTextNode möglich.

          Grüsse

          Cyx23

          1. Hallo,

            kann ich so nicht nachvollziehen, meinst du bei Lauftext wäre innerText "sinnmachender"?

            nein, ich meine ...firstChild.nodeValue, so wie im DOM vorgesehen. InnerHTML macht nur Sinn, wenn es sich um HTML handelt und nicht nur um einfachen Text. Ich bin mir auch nicht sicher, ob die Kombination von DOM (getElement...) und DHTML (innerHTML, innerTest, ...) überhaupt erlaubt ist, auch wenn es in den meisten modernen Browsern funktioniert.

            Gruß, Jürgen

            1. Hi,

              Ich bin mir auch nicht sicher, ob die Kombination von DOM (getElement...) und DHTML (innerHTML, innerTest, ...) überhaupt erlaubt ist,

              innerText nicht, aber innerHTML (deswegen nimmt man ja auch bei reinem Text innerHTML)!

              auch wenn es in den meisten modernen Browsern funktioniert.

              Streiche "den meisten", setze "allen". Oder kennst Du einen, der innerHTML nicht beherrscht?

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
              1. Hallo,

                Streiche "den meisten", setze "allen". Oder kennst Du einen, der innerHTML nicht beherrscht?

                Nein! Aber mit Worten wie "alle" und "immer" bin ich vorsichtig.

                Gruß, Jürgen

                1. Hi,

                  Nein! Aber mit Worten wie "alle" und "immer" bin ich vorsichtig.

                  Verständlich. Was das "immer" angeht: Ich teste vorher auch lieber, ob der Browser innerHTML wirklich beherrscht.

                  Andererseits ist da die "normative Kraft des Faktischen". ;-) Will heißen: Mittlerweile könnte sich wohl ohnehin kein Browserprogrammierer noch erlauben, darauf zu verzichten. :)

                  Gruß, Cybaer

                  --
                  Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!