我试图通过选择的每个选项向客户显示总价格:
$('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
方法而改变。
由于我对相关方法不太熟悉,是否有任何方法可以计算页面准备和输入变更的总价格?
答案 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();
});