总结选择期权的价格

时间:2014-02-03 15:44:34

标签: javascript jquery

我试图通过选择的每个选项向客户显示总价格:

$('input[type=checkbox]').change(function(){
    var org = parseInt($('span#totalprice').text());
    var chk = parseInt($(this).attr('price'));
    total = this.checked ? (org + chk) : (org - chk);
    $('span#totalprice').html(total);
});

当检查或取消选中复选框时,总价格会发生变化。但问题是如果提交的表单在某些输入上有一些验证错误,则同一页面会加载给定的错误&用户输入的所有输入(复选框也是如此)但总价格不会因为我使用.change方法而改变。

由于我对相关方法不太熟悉,是否有任何方法可以计算页面准备和输入变更的总价格?

2 个答案:

答案 0 :(得分:1)

您只需要模拟更改事件:

$('input[type=checkbox]').change(function(){
    var org = parseInt($('span#totalprice').text());
    var chk = parseInt($(this).attr('price'));
    total = this.checked ? (org + chk) : (org - chk);
    $('span#totalprice').html(total);
}).trigger('change');

修改

由于你想要选择至少一个,所以请改用:

$('input[type=checkbox]').change(function(){
    var org = parseInt($('span#totalprice').text());
    var chk = parseInt($(this).attr('price'));
    total = this.checked ? (org + chk) : (org - chk);
    $('span#totalprice').html(total);
}).filter(':checked').trigger('change');

.filter(':checked')不应该返回任何内容,因此不会触发任何内容。

答案 1 :(得分:0)

每次重新计算一大堆物品怎么样?

e.g。创建功能

function sumup_everything() {
  var sum = 0;

  $('input[type=checkbox]').each(/* here you calculate */);

  /* setup sum value */
}

然后在输入更改和document.ready上调用它。

$(function() {
  $('input[type=checkbox]').change(function(){ sumup_everything() });

  sumup_everything();
});