Javascript是否具有FindControlRecursive之类的功能?

时间:2012-09-01 16:08:30

标签: javascript asp.net

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

这就是我的尝试。

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

如果我没有注释掉2行,则该功能甚至不执行。看起来我需要更深入。 Javascript是否具有类似C#的 FindControlRecursive 的功能?

2 个答案:

答案 0 :(得分: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     
               }        
          } 
    }
}

答案 1 :(得分:2)

是的,有。

var inputs = lv.getElementsByTagName("INPUT");