我有多个计算总价的下拉列表,它的工作很好,除了一些问题。
首先,我想增加更多的价格,所以它应该是:
总计:£20.97
V.A.T:£4.19
总金额:£25.16
我相信这很简单,但我想不出该怎么做?
其次-它只适用于单个选择下拉列表,如果我想在一个列表中选择多个选项,它将只计算一个
下面是我用来计算价格的代码:
$(function(){
$(".calculate").on("change", function(){
var total = 0;
$('.calculate').each(function() {
if($(this).val() != 0) {
total += parseFloat($(this).val());
}
});
$('#total').text('£' + total.toFixed(2));
});
});//]]>第三,大约有8个下拉列表,但我希望最后一个折扣总价格,而不是添加到它,上面的代码从每个选择的期权价值的价格,因此将折扣金额(在数据库中的折扣列,它写为10%。
所以基本上,在7个列表之后,我应该有一个总数,即So 20.97,那么一旦选择了最后一个列表,它应该用折扣金额替换价格,即(-10%) So 18.87
我就快完成这个了,但是我不能越过最后一个障碍。
谢谢
发布于 2012-05-17 04:15:32
当SELECT允许多个选择时,jQuery val()函数返回一个值数组。因此,您的代码需要检测val()是否返回和数组,如果返回,则循环数组并添加所有这些项。这里有一种方法:
$('.calculate').each(function() {
var currentValue = $(this).val();
if (currentValue.length != undefined) {
for (var i = 0; i < currentValue.length; i++) {
if (currentValue[i] != 0) {
total += parseFloat(currentValue[i]);
}
}
}
else if(currentValue != 0) {
total += parseFloat(currentValue);
}
});这应该考虑到多个select选项。对于折扣,只需获取最终选择的值并应用您的折扣:
var discount = parseFloat($('.discount').val()) / 100;
total = total - (total * discount);发布于 2012-05-17 02:31:34
Javascript是从数据库的DDL中提取值,还是将值硬编码到表单中?
%的计算值是20.97 *0.10。由于10%是硬编码的,这应该适用于最终的下拉列表。
此外,除了将值添加到表单和百分比计算之外,我不确定问题在哪里,也许一些更多的信息会有价值……
https://stackoverflow.com/questions/10624307
复制相似问题