我有4组单选按钮,每组有4个按钮。每个按钮都设置了两个用|分隔的值即:
<input type="radio" id="t20" name="train2" value="0|0">
<input type="radio" id="t20" name="train2" value="5|0.19">
<input type="radio" id="t20" name="train2" value="10|0.19">
<input type="radio" id="t20" name="train2" value="15|0.19">
所有4组都遵循以上示例 - 第一个值的编号不同,按钮2,3和4的第二个值编号相同。从每个组中我只选中了一个按钮。
我有一个java脚本,必须对已检查按钮的值进行一些计算:
$(document).ready(function()
{
var total = 0;
function calcTotal()
{
$("input:checked").each(function()
{
var value = $(this).attr("value");
var array = value.split('|')
var firstValue = array[0];
var secondValue = array[1];
total += parseFloat(firstValue);
});
}
calcTotal();
$("sum").before('<font class="total" style="font-family: Myriad Pro, Gill Sans, Gill Sans MT, Calibri, sans-serif; font-size: 18px; font-weight: bold;">' + total + '</font>');
});
选中的单选按钮的第一个值之和的结果是OK。更新了一些,如果你也改变了一些选择。
我不能正确做的是计算第二个值的总和并以相同的方式输出它们。我一直在努力争取一天没有运气。
注意我只需要选中已选中按钮的总和。但是我需要一个第一个值和另一个第二个和的总和
NOTE2 在每组中我只检查了1个按钮,这就是我需要$("input:checked").each(function()
的原因所以它不是1组中4个按钮的总和。
NOTE3 完整代码http://jsfiddle.net/P3ZyH/10/
任何帮助都非常感谢。
最后我发现了什么是错的......我很难阻止我用头撞墙。
最后一组有两个rafio按钮,我忘了分配第二个值。所以现在一切正常。
如果有人有兴趣 - http://jsfiddle.net/milenmk/P3ZyH/17/
答案 0 :(得分:1)
在jsfiddle上查看this solution。
基本上,你在总变量上有一些范围问题,而你只是总结了第一个值。我将total更改为数组,并将其中的两个值相加。
你想要的是什么,是复选框,每次检查时都要更新总数?这可以通过添加
来实现$('#checkboxes').on("change",calcTotal);
到复选框字段。
答案 1 :(得分:0)
每组具有相同名称的单选按钮仅返回所选单选按钮的值,如果要查找所有单选按钮的值,则不应选择:checked
值。
$(":radio").each(function(){
})
如果您想对所选输入执行某些操作,可以使用change
事件处理程序:
$("input:checked").change(function(){
var value = $(this).attr("value");
var array = value.split('|')
var firstValue = array[0];
var secondValue = array[1];
total += parseFloat(firstValue);
})
如果您只想检查前2个输入的值,请尝试:
$(":radio").each(function(i, v){
if (i < 2) {
var value = $(this).attr("value");
var array = value.split('|')
var val = array[0];
var secondValue = array[1];
total = parseFloat(val);
}
})