Javascript选中表/asp.net中的所有复选框

Javascript选中表/asp.net中的所有复选框,asp.net,javascript,Asp.net,Javascript,我有一个表,表中有行,每行有几个元素。最后一个元素在中有一个复选框。 它们位于设置为runat=“server”的中。我在页面上有另一个名为“chkAll”的复选框,单击该复选框时,我希望javascript选中或取消选中表中的所有复选框 我不太擅长Javascript,所以我不知道该怎么办。我添加了一个javascript onclick方法,并将document.getelementbyid放在div.clientID中,但我不确定接下来该做什么。有什么想法吗?试试使用jQuery——它使j

我有一个表,表中有行,每行有几个
元素。最后一个元素在中有一个复选框。 它们位于设置为
runat=“server”
中。我在页面上有另一个名为“chkAll”的复选框,单击该复选框时,我希望javascript选中或取消选中表中的所有复选框


我不太擅长Javascript,所以我不知道该怎么办。我添加了一个javascript onclick方法,并将document.getelementbyid放在div.clientID中,但我不确定接下来该做什么。有什么想法吗?

试试使用jQuery——它使javascript更简单,更不冗长

我认为可以在这里找到解决您问题的方法:


一旦有了
元素作为参考,使用
getElementsByTagName()
获取
元素,然后检查
类型
属性,如果它是一个复选框,则将它的
选中
属性设置为与复选框
chkAll
选中
属性相同。比如说

function toggleCheckBoxes(elem) {

    var div = document.getElementById('<% = divid.ClientID %>');

    var chk = div.getElementsByTagName('input');
    var len = chk.length;

    for (var i = 0; i < len; i++) {
        if (chk[i].type === 'checkbox') {
            chk[i].checked = elem.checked;
        }
    }        
}

这里有一个。将/edit添加到URL以查看代码

,因为您是javascript新手,我不建议您使用jQuery。了解javascript的基本概念,然后使用jQuery

试试这个

function CheckAll()
{
    var tab = document.getElementById ( "tbl1" ); // table with id tbl1
    var elems = tab.getElementsByTagName ( "input" );
    var len = elems.length;

    for ( var i = 0; i < len; i++ )
    {
        if ( elems[i].type == "checkbox" )
        {
            elems[i].checked = true;
        }
    }
}
在onclick函数中

我想勾选或取消勾选javascript 我表中的所有复选框

。。。
和JavaScript:

function f() {
    var inputs_in_table = document.getElementById("goofy").getElementsByTagName("input");
    for(var i=0; i<inputs_in_table.length; i++) {
        if(inputs_in_table[i].type == "checkbox") inputs_in_table[i].checked= true;
    }
}
函数f(){
var inputs_in_table=document.getElementById(“goofy”).getElementsByTagName(“input”);
对于(var i=0;i请尝试以下操作:

在aspx中:

<asp:CheckBox ID="chkAll" onclick="javascript:CheckUncheckall(this);" Text="Select" runat="server" />
            <table id="tbl" runat="server">
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox1" runat="server" Text="A" /></td>
                </tr>
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox2" runat="server" Text="B" /></td>
                </tr>
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox3" runat="server" Text="C" /></td>
                </tr>
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox4" runat="server" Text="D" /></td>
                </tr>
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox5" runat="server" Text="E" /></td>
                </tr>
            </table>
 <script language="javascript" type="text/javascript">
    function CheckUncheckall(chk) {
    var chks = document.getElementById("<% = tbl.ClientID %>").getElementsByTagName("input");
    for(var i=0; i<chks.length; i++) {
        if(chks[i].type == "checkbox") chks[i].checked= chk.checked;
    }
}
    </script>

和下面的javascript:

<asp:CheckBox ID="chkAll" onclick="javascript:CheckUncheckall(this);" Text="Select" runat="server" />
            <table id="tbl" runat="server">
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox1" runat="server" Text="A" /></td>
                </tr>
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox2" runat="server" Text="B" /></td>
                </tr>
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox3" runat="server" Text="C" /></td>
                </tr>
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox4" runat="server" Text="D" /></td>
                </tr>
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox5" runat="server" Text="E" /></td>
                </tr>
            </table>
 <script language="javascript" type="text/javascript">
    function CheckUncheckall(chk) {
    var chks = document.getElementById("<% = tbl.ClientID %>").getElementsByTagName("input");
    for(var i=0; i<chks.length; i++) {
        if(chks[i].type == "checkbox") chks[i].checked= chk.checked;
    }
}
    </script>

功能检查取消勾选(chk){
var chks=document.getElementById(“”).getElementsByTagName(“输入”);

对于(var i=0;i我已经使用这个脚本创建了一个修改版本,您可以在其中动态地传递表名和复选框名。

函数checkedAll(容器,chkID)
{
var tab=document.getElementById(容器);//获取包含复选框的表id
var elems=tab.getElementsByTagName(“输入”);
对于(变量i=0;i
通过使用jquery直接访问复选框,然后循环它们,您可以在这里保存循环元素

$('input[type=checkbox]').each(function(){ 
    this.checked = true  
});
如果要隔离页面的特定部分,请执行以下操作:

$(mydiv).find('input[type=checkbox]').each(function(){ 
    this.checked = true 
});

在这种情况下,通过单个复选框选中和取消选中所有复选框(
checkall
-id)

谢谢您的回复!我正在尝试让它工作,但它找不到表,我猜是因为我在codebehind中动态创建了表。请在JavaScript函数中使用表的ClientID。如果该函数在aspx标记中,您可以使用服务器端标记
为表呈现生成的客户端id在发送给客户端的HTML标记中没有问题-您可能还希望在
中的每个复选框上设置一个单击事件处理程序,以检查其他复选框的
已选中的
属性-如果未选中所有复选框,则取消选中
chkAll
复选框。如果所有复选框都已选中,请选中
chkAll
复选框x、 既然您知道如何获取复选框并选中它们的
checked
属性,那么我将把这个作为练习留给您
$('input[type=checkbox]').each(function(){ 
    this.checked = true  
});
$(mydiv).find('input[type=checkbox]').each(function(){ 
    this.checked = true 
});
$('#checkall').click(
 function () {
   $('#divid').find('input[type=checkbox]').each(function () {
     this.checked = $('#checkall').is(':checked')
    });
});