首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >价格更新有效,但不支持多项选择和打折

价格更新有效,但不支持多项选择和打折
EN

Stack Overflow用户
提问于 2012-05-17 02:16:17
回答 2查看 180关注 0票数 0

我有多个计算总价的下拉列表,它的工作很好,除了一些问题。

首先,我想增加更多的价格,所以它应该是:

总计:£20.97

V.A.T:£4.19

总金额:£25.16

我相信这很简单,但我想不出该怎么做?

其次-它只适用于单个选择下拉列表,如果我想在一个列表中选择多个选项,它将只计算一个

下面是我用来计算价格的代码:

代码语言:javascript
复制
$(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

我就快完成这个了,但是我不能越过最后一个障碍。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-17 04:15:32

当SELECT允许多个选择时,jQuery val()函数返回一个值数组。因此,您的代码需要检测val()是否返回和数组,如果返回,则循环数组并添加所有这些项。这里有一种方法:

代码语言:javascript
复制
$('.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选项。对于折扣,只需获取最终选择的值并应用您的折扣:

代码语言:javascript
复制
var discount = parseFloat($('.discount').val()) / 100;
total = total - (total * discount);
票数 0
EN

Stack Overflow用户

发布于 2012-05-17 02:31:34

Javascript是从数据库的DDL中提取值,还是将值硬编码到表单中?

%的计算值是20.97 *0.10。由于10%是硬编码的,这应该适用于最终的下拉列表。

此外,除了将值添加到表单和百分比计算之外,我不确定问题在哪里,也许一些更多的信息会有价值……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10624307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档