Ergebnis 1 bis 3 von 3

Thema: js zusammenrechnen

  1. #1
    Erfahrener Benutzer
    Registriert seit
    14.03.2008
    Beiträge
    121

    js zusammenrechnen

    Hallo
    kann mir jemand sagen warum mein script nicht richtig läuft

    UserPoints = "<?php echo $userpoints ;?>";
    Vorhanden = "<?php echo $vorhanden; ?>"
    Tageskurs = "<?php echo $tageskurs; ?>"
    MSG1 = "<?php echo JText::_('BON_NOTALLOWED');?>";
    MSG2 = "<?php echo JText::_('BON_BLANK');?>";

    HTML-Code:
    function calculate(){
        var wieviel1 = Number(document.getElementById("wieviel1").value*100);
        var wieviel2 = Number(document.getElementById("wieviel2").value*10); 
        var wieviel3 = Number(document.getElementById("wieviel3").value*1);
        
        var total = Number(wieviel1*100+wieviel2*10+wieviel3*1)/Tageskurs;
        var taler = Number(wieviel1*100+wieviel2*10+wieviel3*1)/Tageskurs;
        if((total>UserPoints) || (total>Vorhanden)){
            var msg = MSG1;
            document.getElementById("msg").value = msg;
            document.getElementById("msg").style.color = "red";
            document.getElementById("wieviel1").style.backgroundColor = "#ff9999"
            document.getElementById("wieviel2").style.backgroundColor = "#ff9999"
            document.getElementById("taler").style.backgroundColor = "#ff9999"
        } else {
            
            var msg = MSG2;
    
            document.getElementById("total").value = total.toFixed();
            document.getElementById("taler").value = taler.toFixed();
            document.getElementById("msg").value = msg;
            document.getElementById("msg").style.color = "#000000";
            document.getElementById("total").style.color = "#000000";
            document.getElementById("wieviel1").style.backgroundColor = "#ffffff"
            document.getElementById("wieviel2").style.backgroundColor = "#ffffff"
            document.getElementById("taler").style.backgroundColor = "#ffffff"
        }
          
        
    }
    wenn ich nur total>UserPoints oder total>Vorhanden kappt es
    ich will aber das er beides prüft und ggf. den fehler ausgibt.

  2. #2
    Erfahrener Benutzer
    Registriert seit
    14.03.2008
    Beiträge
    121
    kann mir denn keiner Helfen ich bin echt am verzweifeln

  3. #3
    Moderator Avatar von Worka
    Registriert seit
    20.05.2007
    Beiträge
    973
    Versuche doch mal sowas, um zu prüfen, welche Werte er überhaupt vergleicht

    HTML-Code:
    function calculate(){
        var wieviel1 = Number(document.getElementById("wieviel1").value*100);
        var wieviel2 = Number(document.getElementById("wieviel2").value*10); 
        var wieviel3 = Number(document.getElementById("wieviel3").value*1);
        
        var total = Number(wieviel1*100+wieviel2*10+wieviel3*1)/Tageskurs;
        var taler = Number(wieviel1*100+wieviel2*10+wieviel3*1)/Tageskurs;
        if((total>UserPoints) || (total>Vorhanden)){
            alert("IF -> total: " + total + " | UserPoints: " + UserPoints +" | Vorhanden: " + Vorhanden);
        } else {
            alert("ELSE-> total: " + total + " | UserPoints: " + UserPoints +" | Vorhanden: " + Vorhanden);
            
        }
          
        
    }
    Zudem kommt mir folgendes komisch vor:
    HTML-Code:
    ...
    var wieviel1 = Number(document.getElementById("wieviel1").value*100);
    ...
    Hier wird der Wert von wieviel1 mit 100 multipliziert.

    Später dann in Deinem Code:
    HTML-Code:
    ...
    var total = Number(wieviel1*100+ ...
    Wird der Wert von wieviel1, welche ja schon mit 100 multipliziert wurde nochmal mit 100 multipliziert.

    Das selbe machst Du mit wieviel2, nur dass Du dort mit 10 multiplizierst.

    Ist das so gewollt von Dir?

    Und wieviel3*1 ist ja unnötig weil
    wieviel3*1 = wieviel3
    Aber erstmal solte es ja laufen, bevor man optimiert.
    StGB § 328 Absatz 2.3: Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •