2016-08-22 3 views
-1

Ich versuche einen Weg zu schaffen, so dass, wenn mein Gesamtwagenpreis unter $ 125 ist, es $ 125 berechnen wird. Ich habe mehrere Wege gegoogelt, um den Mindestbestellwert für die Bestellung zu erhalten, aber nichts funktioniert mit der Einrichtung dieses Codes. Bitte lesen Sie den Code unten:Einrichten des Javascript Bestellpreises Minimum

function Recalculate() { 
    var total = 0; 
    $.each(cart, function(index, item) { 
    var options = {}; 
    if (item.o) $.each(item.o, function(opt_ind, opt_item) { 
     options[opt_item.name] = opt_item.value; 
     options[opt_item.id] = opt_item.value; 
    }); 

    var width_ft = parseInt(options.width_ft); 
    if (!width_ft || isNaN(width_ft)) width_ft = 0; 

    var width_in = parseInt(options.width_in); 
    if (!width_in || isNaN(width_in)) width_in = 0; 

    var width = width_ft + width_in/12; 

    var length_ft = parseInt(options.length_ft); 
    if (!length_ft || isNaN(length_ft)) length_ft = 0; 

    var length_in = parseInt(options.length_in); 
    if (!length_in || isNaN(length_in)) length_in = 0; 

    var sq = width * length; 
    var inshop = options.type_of_cleaning == 'In_Shop_Cleaning'; 

    var base_price = 0; 
    var base_min = 0; 
    switch (item.p) { 
     case 'livingroom': 
     base_price = LIVING_ROOM; 
     break; 
     case 'stair': 
     base_price = STAIR; 
     break; 
    } 

    var i_total = sq * base_price; 
    if (i_total < base_min) i_total = base_min; 
    $('span.isize').eq(index).html('$' + i_total.toFixed(2)); 
    total += i_total; 

    if (options.SCOTCHGARD == 'on') total += Math.min(sq * SCOTCHGARD, 25.00); 
    if (options.DECON == 'on') total += Math.min(sq * DECON, 25.00); 
    if (options.DA == 'on') total += Math.min(sq * DA, 25.00); 
    if (options.clean_or_buy == 'buy') total += i_total * NEW_PAD_TAX/100; 

    }); 
    return [total]; 
} 
+0

wie sollte das Ergebnis aussehen, erwarten Sie? –

+1

Sie haben Ihren Code eingegeben, aber nicht den Fehler oder die erwartete Eingabe/Ausgabe. Es ist sehr schwierig für uns, ein Problem mit diesen Informationen zu debuggen. – ssube

Antwort

0

Wenn Sie ein Minimum von $ 125, die einfachste Sache aufladen möchten Sie einfach die Gesamtzahl auf dieses Minimum gesetzt tun könnte, kurz bevor Sie es zurück. z.B.

if (total < 125) { total = 125; } 
return total; 

(Beachten Sie, dass diese total nicht [total] zurückkehrt, da es mir nicht klar ist, warum Sie ein Array aus einem einzigen Wert zurückgegeben werden soll.)

Ihre Frage den Begriff“enthält .. .getting die Bestellung Minimum hinzugefügt ". Das macht keinen Sinn für mich, d. H. Wenn die reale Summe $ 100 ist, bezweifle ich, dass Sie wollen hinzufügen $ 125 (um insgesamt $ 225 zu machen), sondern Sie wollen nur die Summe auf das Minimum zu setzen. Wenn das richtig ist, aber Sie wollen den Überblick über die zusätzlichen zu halten, dass Sie hinzufügen möchten, dann vielleicht könnten Sie die folgende tun, wieder rechts, bevor Sie aus der Funktion zurück:

var extraForMinimum = 0; 
if (total < 125) { extraForMinimum = 125 - total; } 
return {total: total, extraForMinimum: extraForMinimum }; 

In diesem Fall ist die Funktion Rückgabe eines Objekts, das sowohl die tatsächliche Summe (die immer noch unter 125 $ sein könnte) als auch die zusätzlichen Kosten enthält, die erforderlich sind, um die Gebühr auf das Minimum zu bringen. Wenn Sie dies jedoch tun, möchten Sie möglicherweise den Variablennamen von total in beispielsweise subtotal oder etwas Ähnliches ändern.

Verwandte Themen