1

我正在尝试获取我的复选框组的总和(来自数据库):

<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 的总和。

我的代码不起作用,我真的不知道问题出在哪里。

谢谢你的回答

4

4 回答 4

0

"chk_permisos" 是名称属性的值,应使用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>
于 2013-11-08T16:32:04.240 回答
0

似乎你正在使用 jQuery,你也有一个name属性,而不是一个 ID:

var sum = 0;
$(":checkbox:checked[name=chk_permisos]").each(function() {
    sum += parseFloat(this.value);
});
于 2013-11-08T16:22:49.697 回答
0

如果有一个没有值的复选框,有时它的值为“on”。当你把它通过 parseFloat 函数时,你会得到一个错误。我会在 if 语句中添加一个数字检查。

    if (group[i].checked == true && group[i].value*0 == 0);
于 2013-11-08T16:39:02.220 回答
0

看起来您没有分配 ID,但您使用的是 getElementById。尝试 getElementsByName。

于 2013-11-08T16:20:17.447 回答