我解决了这个问题。工作示例可以在这里找到:http://jsfiddle.net/jnhxdztr/
$(document).ready(function(){
//iterate through each textboxes and add keyup
//handler to trigger sum event
$(".add").each(function() {
$(this).bind("click keyup", function(){
calculateSum();
});
});
});
function calculateSum() {
var sum = 0;
//iterate through each textboxes and add the values
$("input.add:checked, select .add:selected, input.add:not(:radio)").each(function() {
console.log(this);
//add only if the value is number
if(!isNaN(this.value) && this.value.length!=0) {
sum += parseInt(this.value);
}
});
//.toFixed() method will roundoff the final sum to 2 decimal places
$("#sum").html(sum.toFixed(0));
}
我看看你的代码,风格也不是那么好,如果我需要给你一个解决方案,我需要重写一切。因此,我只提供一些建议。 1. calcTotal()函数可以计算一切的总量,然后有一个返回值。 2.你的选择没有对应于成本的价值。 3.最好有一个成本值的id,然后每次发生事件时使用id来更新成本值。 4如果您使用div或其他html标签来安排您的html布局应该会更好。 – 2014-12-02 00:50:15
感谢您的建议。但是,在功能完备的情况下,没有什么重点。输出只需要是一个临时输出。因为所有其他的价格都是在ultracart的后端进行计算的。但是,是的选项没有你看到的例子中的值,因为这些选项的jquery不起作用。 Ultracart使用表格作为基础HTML,但是当分区功能完全正常时,分区将在以后添加到样式中。 – Tyson 2014-12-02 01:51:42