Javascript 总结选择选项的价格

Javascript 总结选择选项的价格,javascript,jquery,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(

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

$('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
方法,所以总价不会更改


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

您只需模拟如下更改事件:

$('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')
应该不返回任何内容,因此它不会触发任何内容。

每次处理整组项目时,如何重新计算

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();
});

您可能需要解释如何验证数据等。。您的问题有点不清楚,我们需要更多地了解您的代码和您使用的解决方案。@MMM输入由PHP验证,因此在服务器端和页面重新加载时,总价格将重置,但选项已选中。因此,您只想在页面加载时触发计算代码?当页面首次加载时,由于未选中任何选项,因此价格为负!