problem mit berechnung (im IE7, bei FF gehts)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • problem mit berechnung (im IE7, bei FF gehts)

    Hallo ihr,

    ich habe da ein Problem mit einer Übungsaufgabe. Das ganze soll ein Rechner werden, der bei verschiedenen Konfigurationen immer sofort den Gesamtpreis angibt. Soweit habe ich das zum Glück noch hinbekommen, aber irgendwie gibt es da jetzt ein Problem im IE7, während es bei FF scheinbar keine Probleme gibt. Am Anfang funktionieren in beiden Browsern die Berechnungen wunderbar, aber nach (glaube) 12 Klicks, also verschiedene Auswahl, funktioniert die Berechnung im IE7 nicht mehr, der macht dann immer "NaN" beim Gesamtpreis ran. Wenn ich mir über "alert" die einzelnen Werte vor jedem Schritt ausgeben lassen, dass sind angeblich nach einer Weile (also beim besagten 12. Klick) alle Werte "undefined", außer der Wert von der Klasse, die ich zuletzt geklickt habe. Somit funktioniert dann die Berechnung halt auch leider nicht mehr im IE7. Bei FF habe ich so ca. 20 mal geklickt und da ging es immernoch.

    Hat jemand eine Idee, woran das liegen könnte? Es ist wichtig, dass es mit beiden Browsern funktioniert .


    Hier der Quellcode:

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <META NAME="AUTHOR" CONTENT="Sandy">
    <META NAME="ROBOTS" CONTENT="NOINDEX">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Temp</title>
    <script language="JavaScript" type="text/JavaScript">
    <!--
     function calc() {
      window.document.Rechner.gesamtpreis.value = eval(window.document.Rechner.computer.value + '+' + window.document.Rechner.zubehoer.value + '+' + window.document.Rechner.software.value)+ ',00 €';
     }
     function init() {
      window.document.Rechner.computer.value = 0;
      window.document.Rechner.zubehoer.value = 0;
      window.document.Rechner.software.value = 0;
      calc();
     }
     function computeradd(zeichen) {
      window.document.Rechner.computer.value = zeichen;
      calc();
     }
     function zubehoeradd(zeichen) {
      window.document.Rechner.zubehoer.value = zeichen;
      calc();
     }
     function softwareadd(zeichen) {
      window.document.Rechner.software.value = zeichen;
      calc();
     }
    //-->
    </script>
    </head>
    
    <body onLoad="init()">
    <form name="Rechner" action="">
    <table width="100%" align="center" border="0">
      <tr>
        <td>
    	<input type=radio name="computer" class="computer" unchecked onClick="computeradd('1000')">&nbsp;Computer 1<br><font size="-1">Preis: 1000,- Euro</font></input>
             <br><br>
        </td>
        <td>
    	<input type=radio name="computer" class="computer" unchecked onClick="computeradd('1500')">&nbsp;Computer 2<br><font size="-1">Preis: 1500,- Euro</font></input>
             <br><br>
        </td>
        <td>
    	<input type=radio name="computer" class="computer" unchecked onClick="computeradd('2000')">&nbsp;Computer 3<br><font size="-1">Preis: 2000,- Euro</font></input>
             <br><br>
        </td>
        <td>
    	<input type=radio name="computer" class="computer" unchecked onClick="computeradd('2500')">&nbsp;Computer 4<br><font size="-1">Preis: 2500,- Euro</font></input>
             <br><br>
        </td>
      </tr>
      <tr>
        <td>
    	<input type=radio name="zubehoer" class="zubehoer" unchecked onClick="zubehoeradd('400')">&nbsp;Zubehör 1<br><font size="-1">Preis: 400,- Euro</font></input>
             <br><br>
        </td>
        <td>
    	<input type=radio name="zubehoer" class="zubehoer" unchecked onClick="zubehoeradd('600')">&nbsp;Zubehör 2<br><font size="-1">Preis: 600,- Euro</font></input>
             <br><br>
        </td>
        <td>
    	<input type=radio name="zubehoer" class="zubehoer" unchecked onClick="zubehoeradd('800')">&nbsp;Zubehör 3<br><font size="-1">Preis: 800,- Euro</font></input>
             <br><br>
        </td>
        <td>
    	<input type=radio name="zubehoer" class="zubehoer" unchecked onClick="zubehoeradd('900')">&nbsp;Zubehör 4<br><font size="-1">Preis: 900,- Euro</font></input>
             <br><br>
        </td>
      </tr>
      <tr>
        <td>
    	<input type=radio name="software" class="software" unchecked onClick="softwareadd('220')">&nbsp;Software 1<br><font size="-1">Preis: 220,- Euro</font></input>
             <br><br>
        </td>
        <td>
    	<input type=radio name="software" class="software" unchecked onClick="softwareadd('350')">&nbsp;Software 2<br><font size="-1">Preis: 350,- Euro</font></input>
             <br><br>
        </td>
        <td>
    	<input type=radio name="software" class="software" unchecked onClick="softwareadd('480')">&nbsp;Software 3<br><font size="-1">Preis: 480,- Euro</font></input>
             <br><br>
        </td>
        <td>
    	<input type=radio name="software" class="software" unchecked onClick="softwareadd('590')">&nbsp;Software 4<br><font size="-1">Preis: 590,- Euro</font></input>
             <br><br>
        </td>
      </tr>
      <tr>
        <td colspan=4>
             Gesamtpreis: <input type="text" name="gesamtpreis" class="gesamtpreis" size="6"><br><br>
        </td>
      </tr>
    </table>
    </form>
    </body>
    </html>
    Danke schon im Voraus,
    Liebe Grüße
    Sandy

  • #2
    Re: problem mit berechnung (im IE7, bei FF gehts)

    eval zum Berechnen ist eklig.

    Und den Sinn der add-Funktionen habe ich auch noch nicht ganz verstanden.
    Da würde ich doch eher eine einzige Funktion machen, die bei einer Änderung aufgerufen wird, und die dann selber schaut, welcher Radiobutton in jeder Kategorie angekreuzt ist, und dann dessen value für die Berechnung nimmt.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Was kann man denn anstatt "eval" noch verwenden? Ist leider der einzige Befehl, den ich bis jetzt kenne.

      Für den anderen Hinweis muss ich belesen, wie man sowas macht. Fange gerade erst an Javascript zu lernen.

      Gruß
      Sandy

      Kommentar


      • #4
        dir stehen Umwandlungsfunktionen wie parseInt, parseFloat zur Verfügung, wende sie an und berechne anschliesssend ganz normal.

        Kommentar

        Lädt...
        X