我正在尝试获取我的复选框组(来自数据库)的总和:
<script type="text/javascript">
$.ajax({
// SOME CODE HERE
$("#permisos01Div").append("<input type='checkbox' name='chk_permisos'
onClick='VerCostoPermiso()' value='"+data[i].costo+"' > " +
data[i].permiso + "<br>");
// SOME CODE HERE
});
function VerCostoPermiso(){
var group = document.getElementById('chk_permisos');
var sum = 0.00;
for (var i=0; i<group.length; i++){
if (group[i].checked == true){
sum = sum + parseFloat(group[i].value);
}
}
alert(sum);
}
</script>
结果应该是:每当我选中此框时,请提醒检查的总cbs总和。
我的代码不起作用,我真的不知道问题出在哪里。
感谢您的回答
答案 0 :(得分:0)
看起来您没有分配ID,但是使用了getElementById。试试getElementsByName。
答案 1 :(得分:0)
似乎你在使用jQuery,你也有name
属性,而不是ID:
var sum = 0;
$(":checkbox:checked[name=chk_permisos]").each(function() {
sum += parseFloat(this.value);
});
答案 2 :(得分:0)
“chk_permisos”是name属性的值,应该使用documents.getElementsByName(“chk_permisos”)进行选择:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function VerCostoPermiso() {
var group = document.getElementsByName("chk_permisos");
var sum = 0.00;
for (var i = 0; i < group.length; i++) {
if (group[i].checked == true) {
sum = sum + parseFloat(group[i].value);
}
}
alert(sum);
}
</script>
</head>
<body>
<div id="permisos01Div">
<input type='checkbox' name='chk_permisos' onClick='VerCostoPermiso()' value='1'>A1<br>
<input type='checkbox' name='chk_permisos' onClick='VerCostoPermiso()' value='10'>B10<br>
<input type='checkbox' name='chk_permisos' onClick='VerCostoPermiso()' value='100'>C100<br>
</div>
</body>
</html>
答案 3 :(得分:0)
如果有一个带有值的复选框,有时它的值为“on”。当你通过parseFloat函数放置它时会出现错误。我会在if语句中添加一个数字检查。
if (group[i].checked == true && group[i].value*0 == 0);