2014-02-06 126 views
0

我有这样的检查框获取价值

<input type="checkbox" class="calc" name="access[a]" value="1" /> 
<input type="checkbox" class="calc" name="access[b]" value="2" /> 
<input type="checkbox" class="calc" name="access[c]" value="3" /> 
<input type="checkbox" class="calc" name="access[d]" value="4" /> 

我需要以下的东西,我会解释它的例子: 比方说,我选择了第一和第二复选框,然后“AB”( [access [a] + access [b])和“3”(1 + 2)将被发送。

编辑1: 你没有解决我的问题,我想要要发送的东西,计算价值和访问[值]。

例如: 用户选择第三和第四个字段,7(3 + 4)和cd([access [c] + access [d])将被发送。

回答

1

你可以简单地遍历它

var added= 0; 
$(".calc:checkbox:checked").each(function() { 
    added += +$(this).val(); 
}); 

DEMO

0

强制性香草答案:

抢按类数组中的元素(你也可以使用querySelectorAll(".calc")(或[name*='access']等)

循环元素数组,检查检查的属性,并添加到总和(确保解析值作为一个Int避免NaN问题)

var sum = 0; 
var x = document.getElementsByClassName("calc"); 
for (var i=0; i<x.length; i++) { 
    if (x[i].checked) sum+= parseInt(x[i].value,10); //parse as int 
} 
2

还有一个香草的解决方案:

var res = [ ].reduce.call(document.querySelectorAll('input.calc:checked'), function(a, b) { 
    return a + (+b.value || 0); 
}, 0); 

演示:http://jsfiddle.net/fsbTS/

+0

尼斯。 'var $ = function(sel){return Array.prototype.slice.call(0,document.querySelectorAll(sel)); }'和'函数sum(a,b){return a + b}'哪个可以让你做(没有80kb库!)'var res = $(“input.calc:checked”)。,map( getValue).reduce(sum)'类似于http://jsfiddle.net/x6374/ –

+0

大家似乎都误解了我的问题。我更新了我的问题,你会介意检查吗? –