将select / deselect all添加到动态表格形式

时间:2015-07-14 01:20:06

标签: javascript jquery twitter-bootstrap

我有一个包含添加和删除行的按钮的表单。我检查所有复选框的javascript函数适用于第一行,但是一旦我向表单添加更多行,第一行仍然是唯一被检查的行。

任何提示?

这是我的javascript函数:

<code>
//checks all rows
function checkAll() {
var masterCheck = document.getElementById('masterCheck');
var on = false;
if(masterCheck.checked==true) {
    document.getElementById('checkbox').checked=true;
} else {
    document.getElementById('checkbox').checked=false;
}
}
</code>

以下是表格: http://crimsonroot.com/files/freelance/new.html

感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

我发现了什么问题! @Mohammed你的答案真的很有帮助。我发现只有一两个语法错误。为了检查和取消选中所有框,我需要添加一个布尔变量作为函数的输入,如下所示:

//checks all rows
function checkAll(bool) {
    var masterCheck = document.getElementById('masterCheck');
    var allcheck = document.getElementsByClassName('checkbox');
    var on = false;
    for (var i = 0; i < allcheck.length; i++) {
        if (masterCheck.checked == true) {
            allcheck[i].checked = true;
        } else {
            allcheck[i].checked = false;
        }
    }

} 

出于某种原因,这是拼图的最后一块。感谢您的帮助!

答案 1 :(得分:0)

你应该尝试这样的事情。

$("#masterCheck").click(function () {
     $('input:checkbox').not(this).prop('checked', this.checked);
 });

答案 2 :(得分:0)

由于document.getElementById()返回第一个元素,因为id不能多于一个。要使其可用,请添加一个类复选框并尝试以下代码:

//checks all rows
function checkAll() {
    var masterCheck = document.getElementById('masterCheck');
    var allcheck = getElementsByClassName('checkbox');
    var on = false;
    for (var i = 0; i < allcheck.length; i++) {
        if (masterCheck.checked == true) {
            allchecked[i].checked = true;
        } else {
            allchecked[i].checked = false;
        }
    }
}