【问题标题】:Adding and Multiplying Radio button values with javascript使用javascript添加和乘以单选按钮值
【发布时间】:2013-10-04 18:25:06
【问题描述】:

我有一个调查表,我开发并放置在 jsfiddle http://jsfiddle.net/tMUJT/

$('input:radio').change(function(){ 
  var tot=0;
  $('input:radio:checked').each(function(){
    tot+=parseInt($(this).val());
  });
  tot+=parseInt($('#more').val());
    $('#usertotal').html(tot)
  });

  $('#more').change(function(){
    $('input:radio').trigger('change');
});

每个无线电输入的值为 1。

我需要在每列下方显示每列的总和,然后根据以下计算显示最终总和:

column1 总 x 0 + column2 总 x 1 + column3 总 x 2 + column4 总 x 3 + column5 总 x 4 =

我尝试重新调整许多脚本的用途,但无法让它工作 - 我的 js 技能不是那么好。如果有人可以帮助我使其在 jsfiddle 中工作,我将不胜感激。谢谢!

【问题讨论】:

    标签: javascript jquery radio-button add multiplication


    【解决方案1】:

    http://jsfiddle.net/3qh8D/1/

    我喜欢使用html5 data attributes 来处理这类事情。您可以随意称呼它,但我使用了data-factor(实际上weight 更有意义)。我认为最好将其放入标记中。这样,当您生成标记时,您可以将要查找的值直接绑定到 HTML 中,而不是在代码中某处显示“此 css 类等于 1 且此 css 类等于2"等。

    <td bgcolor="#00CC66"><input type="radio" data-factor='1' name="checkbox" id="checkbox1" value="1"></td>
    <td>On shelf</td>
    <td bgcolor="#FFFF33"><input type="radio" data-factor='2' name="checkbox" id="checkbox2" value="1"></td>
    <td>No</td>
    <td bgcolor="#fba459"><input type="radio" data-factor='3' name="checkbox" id="checkbox3" value="1"></td>
    <td class="dots">&nbsp;</td>
    

    然后,每当单选按钮之一发生更改时,您只需滚动查看所有选中的输入并将data-factor 值相加。

    // column1 total x 0 + column2 total x 1 + column3 total x 2 + column4 total x 3 + column5 total x 4 =
    
    $(':input[type=radio]').change(function() {
      var $inp, factor, inp, inputs, total, _i, _len;
      total = 0;
      inputs = $('input[type=radio]:checked');
      for (_i = 0, _len = inputs.length; _i < _len; _i++) {
        inp = inputs[_i];
        $inp = $(inp);
        factor = $inp.attr('data-factor') || 0;
        total += +factor;
      }
      return $('#totalValue').text("Total value:" + total);
    });
    

    (小提琴在coffeescript中,因为我发现它更具可读性)

    【讨论】:

    • 每次我单击该小提琴中的单选按钮时,我都会在 totalValue div 中得到很多未定义
    • 是的,它现在可以工作了。比我的解决方案更有效率...我不知道你是怎么做到的
    • @Kierchon 谢谢人;有什么问题可以问,我会尽力帮忙的
    • 我现在有点明白了。我以前从未见过或使用过数据因子,所以我不明白你怎么能像那样循环遍历它们,但我现在明白了。很好的解决方案
    • 你能解释一下factor = $inp.attr('data-factor') || 0;|| 0 是干什么用的吗?还有total += +factor; 因子前面的 + 是干什么用的?
    猜你喜欢
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 2023-04-01
    相关资源
    最近更新 更多