如何添加单选按钮的值以获得总和

时间:2017-09-28 08:54:00

标签: jquery

我在表单中有一些无线电输入,我在选择时编写了代码。但是,当我尝试添加时,我会得到NaN。

有什么想法吗?

HTML

    <label class="form-check-label ">
        <input class="form-check-input row1" type="radio" name="inlineRadioOptions" id="r1" value="1">
      </label>
    </div>
    <div class="form-check form-check-inline">
      <label class="form-check-label ">
        <input class="form-check-input row1" type="radio" name="inlineRadioOptions" id="r2" value="2">
      </label>
    </div>

Jquery的

function sum(){

 var one = $('input:checked.row1').val();
 var two = $('input:checked.row2').val();
 var three = $('input:checked.row3').val();
 var four = $('input:checked.row4').val();
 var five = $('input:checked.row5').val();
 var six = $('input:checked.row6').val();
 var seven = $('input:checked.row7').val();
 var eight = $('input:checked.row8').val();
 var nine = $('input:checked.row9').val();

}

2 个答案:

答案 0 :(得分:0)

尝试类似下面的示例。

这将获得所有已检查输入的值并计算总值。

我已使用[class^=row]因此它会获取input的任何checked的值,并且还有一个以row开头的类

注意如果您想进一步缩短代码(与下面的代码段相比),请使用:

function sum() {
  var total = 0;
  var all = $('input:checked[class^=row]').map(function() {
    total += Number(this.value)
  })
}

&#13;
&#13;
function sum() {
  var all = $('input:checked[class^=row]').map(function() {
    return this.value;
  }).get().join(",");
  
  var total = 0;
  for (var i = 0; i < all.length; i++) {
    total += all[i] << 0;
  }
  console.log(total)
}

$('input[class^=row]').change(function() {
  sum();
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" class="row1" value="1" />
<input type="checkbox" class="row2" value="2" />
<input type="checkbox" class="row3" value="3" />
<input type="checkbox" class="row4" value="4" />
<input type="checkbox" class="row5" value="5" />
<input type="checkbox" class="row6" value="6" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

遍历所选的每个输入,然后将这些值解析为int。

 function getsum() {
    var sum= 0;
      $('input:checked').each(function(){
        sum += parseInt($(this).val());
      });
      return sum;
    }

alert(getsum());

<强> Fiddle