0

我需要能够计算出正确的价格。如果复选框已选中,则在我更改下拉数量之前效果很好。

下面是我的 html 代码,它是两个复选框,一个包含价格的标签(跨度)和一个包含数量的下拉菜单。

请记住,有超过 30 行项目,我只在 JFiddle 中包含了 2 行。

这是代码:

http://jsfiddle.net/M9uZ2/

其余部分请参见上面的 JFIDDLE 链接

对于上面的下拉列表,我想到了类似的东西,但它不起作用,而且可能是一种不好的方法。

$("#MainContent_ddlLipoB12").bind('change', function () {

                if ($('#MainContent_cbLipoB12').is(':checked')) {
                    $('#MainContent_cbLipoB12').prop('checked', false);
                    $("#MainContent_cbLipoB12").click();
                }
            });

任何想法,将不胜感激!我尝试了几种不同的方法,价格永远不会正确计算。

4

1 回答 1

2

由于您有多个复选框和下拉菜单,因此很难拥有唯一的 ID,因为需要多次复制代码。更好的是,您可以拥有一个用于复选框和下拉列表的类,并触发更新数量变化总费用的功能。我为下拉列表添加了一个类,并调用了一个函数来更新总数。这是适用于整个表格的函数体,

function calculateTotal() {
  var chargetotal = 0;
  $('#tab > tbody  > tr').each(function() {
    if ($('td:nth-child(1) > span >input', this).is(':checked')) {
    var price = parseFloat($('td:nth-child(3)', this).text().replace('$', ''));
    var quantity = $('td:nth-child(4) option:selected', this).val();
    chargetotal = chargetotal + price*quantity;
  }
  $('#MainContent_txtTotal').val(chargetotal);
  });
}

在复选框和下拉列表的更改事件上调用此函数。这是演示

于 2013-07-05T08:28:54.553 回答