我正试图设置一种方式,这样如果我的购物车价格低于125美元,它将收取125美元。我已经用Google搜索了多种方式来添加订单最小值,但是这些代码的设置方式没有任何效果。请查看以下代码:
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 :(得分:0)
如果您想要收取至少125美元的费用,您可以做的最简单的事情就是在返回之前将总数设置为最小值。 e.g。
if (total < 125) { total = 125; }
return total;
(请注意,这将返回total
而不是[total]
,因为我不清楚为什么要返回单个值的数组。)
您的问题包括短语&#34; ...最少添加订单&#34;。这对我来说没有意义,即如果实际总数是100美元,我怀疑你想要 添加 125美元(总计225美元),而是你只想将总数设置为最小值。如果这是正确的,但你确实想要跟踪你添加的额外内容,那么也许你可以在从函数返回之前再次执行以下操作:
var extraForMinimum = 0;
if (total < 125) { extraForMinimum = 125 - total; }
return {total: total, extraForMinimum: extraForMinimum };
在这种情况下,该函数返回的对象包含实际总数(可能仍然低于125美元)以及将费用降至最低所需的额外成本。但是,如果您这样做,则可能需要将变量名称从total
更改为subtotal
或类似的其他内容。