Sascha2111: JS Berechnungsfeld läuft nicht unter Firefox

Hallo!!

Ich habe eine PHP-Seite auf der aus einer Anzahl und einem Betrag eine Gesamtsumme berechnet werden soll. Im IE klappt das einwandfrei, nur im Firefox nicht, vielleicht kann mir jemand weiterhelfen! Die kryptischen Namen der INPUTs resultieren aus der Typo3-Umgebung, in der das PHP laufen muss. Schon mal vielen Dank.

Code:
<form name="form1" method="POST".......
....

<script type="text/javascript">
   function calc()
    {
      var convert_betrag = document.getElementById("tx_ClubSupport_pi6[order_voucher][DATA][gut_betrag]").value.replace(/,/, ".");
      var gmenge = parseFloat(document.getElementById("tx_ClubSupport_pi6[order_voucher][DATA][gut_menge]").value);
      var gbetrag = parseFloat(convert_betrag);
      document.getElementById("betrag").value = gmenge*gbetrag;
    }
 </script>

<table class=de_100>

<tr>
         <td width = 125 class = "de_label" style="vertical-align:middle;"> Gutscheinbetrag*:&nbsp;</td>
         <td width = 50>
        <input class="de_text" type="text" size =10
              name="tx_ClubSupport_pi6[order_voucher][DATA][gut_betrag]"
             value="" onchange=calc()></td><td>Euro  (Eingabeformat: EURO,Cent)</td>
        </tr>

<td width = 125 class = "de_label" style="vertical-align:middle;"> Anzahl*:&nbsp;</td>
          <td width = 50>
          <input class="de_text" type="text" size =10
              name="tx_ClubSupport_pi6[order_voucher][DATA][gut_menge]"
             value="" onchange=calc()></td> <td>St&uuml;ck</td>
       </tr>

</table>

<table class=de_100>
       <tr><td width = 125 class = "de_label" style="vertical-align:middle;">Gesamtbetrag:</td>
        <td width = 50>
       <input class="de_text" type="text" value="" name="betrag" readonly style="border-style:none;"></td>
       <td>Euro</td>
       </tr>

</table><br>

  1. Ich habe eine PHP-Seite auf der aus einer Anzahl und einem Betrag eine Gesamtsumme berechnet werden soll. Im IE klappt das einwandfrei, nur im Firefox nicht, vielleicht kann mir jemand weiterhelfen! Die kryptischen Namen der INPUTs resultieren aus der Typo3-Umgebung, in der das PHP laufen muss. Schon mal vielen Dank.

    So wie ich das sehe, ist dein HTML im Bereich der Tabelle mangelhaft.

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
  2. @Beat:

    Es wäre nett, wenn du kurz schreiben würdest WO es mangelhaft ist. Vielleicht hilft mir das ja schon weiter..

    1. @@Sascha2111:

      Es wäre nett, wenn du kurz schreiben würdest WO es mangelhaft ist. Vielleicht hilft mir das ja schon weiter..

      DORT werden Sie geholfen.

      Live long and prosper,
      Gunnar

      --
      Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
  3. @@Sascha2111:

    var convert_betrag = document.getElementById("tx_ClubSupport_pi6[order_voucher][DATA][gut_betrag]").value.replace(/,/, ".");

    Du hast nirgens ein Element mit der *ID* "tx_ClubSupport_pi6[order_voucher][DATA][gut_betrag]". Wo keins ist, kann der Firefox auch keins finden.

    Hat dir das die Fehlerkonsole nicht verraten oder kommt bei dir Im-Forum_Fragen vor dem Debuggen?

    Live long and prosper,
    Gunnar

    --
    Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
  4. das Problem an einem Beispiel (gilt für alle deine input-Felder)

    document.getElementById("betrag").value = gmenge*gbetrag;

    hier greifst du auf ein Element mit der ID "betrag" zu

    <input class="de_text" type="text" value="" name="betrag" readonly style="border-style:none;"></td>

    es gibt aber nur ein Element mit name="betrag".

    Der IE verwechselt das, der Firefox und andere Browser wissen das ordentlich voneinander zu trennen.
    Also spendiere den Elementen eine ID oder greife auf sie mit document.getElementsByName zu.

    1. @gast42
      vielen dank, jetzt klappt es!! dummer fehler, aber wenn man so selten mit JS arbeitet =)

      @gunnar
      mein php-debugger hat keine fehler ausgespuckt und da ich schnell eine antwort brauchte hab ich´s hier gepostet. davon abgesehen zwingt dich ja keiner zu antworten und selbst wenn wäre eine lösung sehr hilfreich anstatt zu schreiben was falsch ist..... live fast, die young!

      1. @@Sascha2111:

        und selbst wenn wäre eine lösung sehr hilfreich anstatt zu schreiben was falsch ist.....

        Daraus ergibt sich unmittelbar die Lösung.

        Ansonsten frag bitte im GETHTML-Forum nach, nicht hier.

        Live long and prosper,
        Gunnar

        --
        Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
      2. Hi,

        mein php-debugger hat keine fehler ausgespuckt

        Wie denn auch, bei einem clientseitigen Problem.

        und da ich schnell eine antwort brauchte hab ich´s hier gepostet.

        Warum brauchst du die Antwort denn so "schnell"?
        Das kenn' ich doch eigentlich nur von Leuten, denen der Kunde im Nacken sitzt, weil sie mehr versprochen haben, als sie leisten koennen.

        davon abgesehen zwingt dich ja keiner zu antworten und selbst wenn wäre eine lösung sehr hilfreich anstatt zu schreiben was falsch ist.....

        Schon mal mit Mitdenken versucht?
        Wenn man dir sagt, was falsch ist, dann weisst du doch, was du zu verbessern hast!
        Das nicht anzunehmen, also nicht hilfreich zu bezeichnen und stattdessen nach einer "Loesung" zu verlangen, ist reichlich unverschaemt.

        live fast, die young!

        Ja, geh und mach mal.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“