Fehler in Bestellcode

euroro

Grünschnabel
Hallo liebe Forummitglieder,
ich bin ein Neuling und bitte um Hilfe.
Habe ein Pizzabestellformular erstellt und erhalte nun statt der Gesamtsumme NaN.
An was könnte das liegen?
Vielen Dank für eure Hilfe.
Hier der Code:

Javascript:
function ff_pss_amount_validation(element, message)
{
    ff_pss_calculate();
    if (element.value==0) {
        ff_validationFocus('pss_margherita_regular');
        return message;
    } // if
    return '';
} // ff_pss_amount_validation

function ff_pss_calculate()
{
    var amount = 0;
    var order;

    order = ff_getElementByName('pss_margherita_regular').value;
    if (order != '') amount += parseInt(order) * 4.10;

    order = ff_getElementByName('pss_margherita_large').value;
    if (order != '') amount += parseInt(order) * 5.20;

    order = ff_getElementByName('pss_cipola_regular').value;
    if (order != '') amount += parseInt(order) * 4.10;

    order = ff_getElementByName('pss_cipola_large').value;
    if (order != '') amount += parseInt(order) * 5.20;

    order = ff_getElementByName('pss_funghi_regular').value;
    if (order != '') amount += parseInt(order) * 4.40;

    order = ff_getElementByName('pss_funghi_large').value;
    if (order != '') amount += parseInt(order) * 5.70;

    order = ff_getElementByName('pss_paprika_regular').value;
    if (order != '') amount += parseInt(order) * 4.40;

    order = ff_getElementByName('pss_paprika_large').value;
    if (order != '') amount += parseInt(order) * 5.70;

    order = ff_getElementByName('pss_salami_regular').value;
    if (order != '') amount += parseInt(order) * 5.20;

    order = ff_getElementByName('pss_salami_large').value;
    if (order != '') amount += parseInt(order) * 6.20;

    ff_getElementByName('pss_amount').value = Math.round(amount*100)/100;
} // ff_pss_calculate
 
Zuletzt bearbeitet von einem Moderator:
Gib dir mal mit console.log(amount) bzw. console.log(order) die Werte an verschiedenen Stellen aus.
Ich vermute, das irgendwo ein wert steht, der keine Zahl ist.
 
Es wird geprüft ob die Variable order != '' ist aber nicht ob sie überhaupt einen Wert enthält und bei der Defintion bekommt sie auch nichts zugewiesen.

Mach mal:
Javascript:
var order = 0;
Vielleicht reicht das ja schon.
 
Ich habe mal ein Minimalbeispiel erstellt, das bei mir Einwandfrei funktioniert
HTML:
<html>
<head>
<script type="text/javascript">
function ff_pss_calculate()
{
    var amount = 0;
    var order;
 
   order = document.getElementById('Margarita').value;
    if (order != '') amount += parseInt(order) * 4.10;
 

    order = document.getElementById('Salami').value;
    if (order != '') amount += parseInt(order) * 6.20;
 
    document.getElementById('amount').value = Math.round(amount*100)/100; //auf 2 Nachkommastellen runden.
} // ff_pss_calculate
</script>
</head>
<body>

<form name="PizzaCalc">
<input type="text" id='Margarita' name="Margarita" >Margarita<br>
<input type="text" id='Salami' name="Salami" >Salami<br>
<input type="button" id='Calc' name="Calc" value="Berechnen" onclick="ff_pss_calculate();">
<input type="text" id='amount'>Ergebnis<br>
<input type="reset" value="Clear">
</form>
</body>
</html>

Auch 0 als Wert funktioniert.
Als Demo:
http://jsfiddle.net/suQmR/8/

Nachtrag: Solange man Zahlen in das Order Feld eingibt geht es. Gibt man einen Buchstaben ein, erhält man NaN.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück