首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQUERY -动态计算价格表中的字段值。

JQUERY -动态计算价格表中的字段值。
EN

Stack Overflow用户
提问于 2014-09-30 14:14:24
回答 1查看 1.1K关注 0票数 1

我有一个价目表,并希望在一个表格中显示一个用户的选择和它的总价格的摘要。

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

HTML

代码语言:javascript
复制
<div>
  <p>PICK ONE</p>
  <input type="radio" name="weight" value="range-1" checked><label>0-10 ($ 10)</label>
  <input type="radio" name="weight" value="range-2"><label>10-20 ($ 20)</label>
  <input type="radio" name="weight" value="range-3"><label>20-30 ($ 30)</label>
</div>

<div>
  <p>ADD EXTRA</p>
  <input type="checkbox" id="urgentchk" name="urgentchk" value="1" /><label>Urgent ($ 40)</label>
  <input type="checkbox" id="meetchk" name="meetchk" value="1" /><label>Meet ($ 60)</label>
</div>

<div>
  <p>TOTAL</p>
  <table id="items"></table>
  <table id="total"></table>
</div>

JQ

代码语言:javascript
复制
$('#urgentchk').change(function() {
   if(this.checked)
   {
      var content = "<tr id='one'><td>Urgent $ 40</td></tr>";
      var prize = parseFloat($(this).attr('prize'));
      $('#items').append(content);
   }
   else
   {
      $('#one').remove();
   }
});

$('#meetchk').change(function() {
   if(this.checked)
   {
      var content = "<tr id='two'><td>Meet $ 60</td></tr>";
      var prize = parseFloat($(this).attr('prize'));
      $('#items').append(content);
   }
   else
   {
      $('#two').remove();
   }
});

现在,不幸的是,我有两个问题我不知道如何解决:

  • 在#items中显示所选字段(无线电按钮),与字段复选框相同。
  • 计算#总计中选定字段的价格(和)。

我怎么能这么做?谢谢

小提琴

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-30 14:56:28

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

代码语言:javascript
复制
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);

};

然后,只要您认为合适,就只需调用此函数:

代码语言:javascript
复制
updateTotal();

例如,在检查#meetchk之后

代码语言:javascript
复制
$('#meetchk').change(function() {

   if(this.checked)
   {
      ...
   }

   updateTotal();

});

这将永远重新计算总价格从零。有时它会很昂贵,这取决于您的应用程序。请看一下下面的小提琴。祝好运!

http://jsfiddle.net/pq46skgn/5/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26123049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档