我在表单中有一些无线电输入,我在选择时编写了代码。但是,当我尝试添加时,我会得到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();
}
答案 0 :(得分:0)
尝试类似下面的示例。
这将获得所有已检查输入的值并计算总值。
我已使用[class^=row]
因此它会获取input
的任何checked
的值,并且还有一个以row
开头的类
注意如果您想进一步缩短代码(与下面的代码段相比),请使用:
function sum() {
var total = 0;
var all = $('input:checked[class^=row]').map(function() {
total += Number(this.value)
})
}
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;
答案 1 :(得分:0)
遍历所选的每个输入,然后将这些值解析为int。
function getsum() {
var sum= 0;
$('input:checked').each(function(){
sum += parseInt($(this).val());
});
return sum;
}
alert(getsum());
<强> Fiddle 强>