JQUERY-动态对价目表中的字段值求和

JQUERY-动态对价目表中的字段值求和,jquery,Jquery,我有一个价目表,希望在一个表中显示用户所做选择的摘要及其总价 为了做到这一点,我试着这样做 HTML 挑一个 0-10 ($ 10) 10-20 ($ 20) 20-30 ($ 30) 加额外的 紧急(40美元) 开会(60美元) 总数 JQ $('#urgentchk')。更改(函数(){ 如果(选中此项) { var content=“紧急$40”; var prize=parseFloat($(this.attr('prize')); $(“#项”)。追加(内容); } 其他的 { $

我有一个价目表,希望在一个表中显示用户所做选择的摘要及其总价

为了做到这一点,我试着这样做

HTML


挑一个

0-10 ($ 10) 10-20 ($ 20) 20-30 ($ 30) 加额外的

紧急(40美元) 开会(60美元) 总数

JQ

$('#urgentchk')。更改(函数(){
如果(选中此项)
{
var content=“紧急$40”;
var prize=parseFloat($(this.attr('prize'));
$(“#项”)。追加(内容);
}
其他的
{
$(“#一”).remove();
}
});
$(#meetchk')。更改(函数(){
如果(选中此项)
{
var content=“满足$60”;
var prize=parseFloat($(this.attr('prize'));
$(“#项”)。追加(内容);
}
其他的
{
$('#two')。删除();
}
});
现在,不幸的是,我有两个问题不知道如何解决:

  • 在#项中显示所选字段(radiobutton),与使用字段复选框时一样
  • 计算#总计中所选字段的价格(总和)
我怎么能这样做?谢谢


首先,您需要创建一个函数,负责计算总数。之后,每次需要重新计算总计时,都需要调用此函数:页面加载、元素更改等

var updateTotal = function () {

    var total = 0;

    total += parseFloat($('input[name=weight]:checked').attr('prize'));

    total += ($('input[name=urgentchk]:checked').length > 0) ? parseFloat($('input[name=urgentchk]:checked').attr('prize')) : 0;

    total += ($('input[name=meetchk]:checked').length > 0) ? parseFloat($('input[name=meetchk]:checked').attr('prize')) : 0;

    $('#total').html("Total: $" + total);

};
然后,只要在合适的时候调用此函数:

updateTotal();
例如,选中
#meetchk
后:

$('#meetchk').change(function() {

   if(this.checked)
   {
      ...
   }

   updateTotal();

});
这将总是从头开始重新计算总价格。它有时可能很昂贵,这取决于您的应用程序。请看一下下面的小提琴。祝你好运


这就是我想要做的!只有一件事。如何显示div#项中单选按钮的内容?还有其他功能吗?谢谢抱歉,最后一件事,为什么要使用updateTotal var=function()而不是function updateTotal()?谢谢您可以对收音机使用“更改”功能,并以与复选框相同的方式显示内容。对于第二个问题,只需使用选择器$('input[name=weight]'),您可以从这里开始:理想情况下,“Items”应该在updateTotal或类似函数中生成/更新。
updateTotal();
$('#meetchk').change(function() {

   if(this.checked)
   {
      ...
   }

   updateTotal();

});