0

ListView 的每一行都有一个复选框。当用户单击Delete Selected row(s) LinkBut​​ton 时,仅删除选中复选框的行。我正在考虑首先获取数组中的所有复选框,然后循环查看哪个复选框被选中。

这是我尝试过的。

    function CheckBoxBeforeDeleteing() {
        var lv = document.getElementById("MainContent_ListView1");
        //var inputs = lv.childNodes;
        //alert(inputs.Length);
        alert("Test");
    }

如果我不注释掉这两行,则该函数甚至不会执行。看来我需要更深入了。Javascript 是否具有类似于 C# 的FindControlRecursive的功能?

4

2 回答 2

5

您可以使用 javascript 中的循环遍历表单中的元素,如下所示。假设您form1在页面中有runat="server"然后获取表单并使用循环遍历其控件并在表单中找到复选框。

var elem = document.getElementById('<%= form1.ClientID %>').elements;

function CheckBoxBeforeDeleteing() 
{
    for(var i = 0; i < elem.length; i++)
    {
          if(elem[i].id.indexOf('chkBoxId') != -1)
          {
               if(elem[i].checked)
               {
                     //Your code here
               }
          }   
    }
}

使用索引访问表单

function CheckBoxBeforeDeleteing() 
{
    for(i=0;i<document.forms[0].length;i++)
    {
          e=document.forms[0].elements[i];
          if (e.id.indexOf("chkBoxId") != -1 )
          {
           if(e.checked)
               {    
              //Your code goes here     
               }        
          } 
    }
}
于 2012-09-01T16:16:26.663 回答
2

就在这里。

var inputs = lv.getElementsByTagName("INPUT");
于 2012-09-01T16:20:43.523 回答