【问题标题】:how to loop through gridview using jquery and check if any checkbox is checked如何使用jquery遍历gridview并检查是否选中了任何复选框
【发布时间】:2017-02-02 07:17:17
【问题描述】:

我正在开发基于 jquery 的应用程序。我有一个 asp.net gridview,每一行都有复选框。我想检查是否有任何复选框被选中。我正在遍历 gridview 行并检查是否选中了任何复选框,如下所示。

var ResultArrayFirst = [];
        $('#<%= gdvRegretletter.ClientID %> input[type="hidden"]').each(function () {
            if ($(this).closest('tr').find('input[type="checkbox"]').prop('checked', true))
            {
                ResultArrayFirst.push($(this).val());
            }

        });
        alert(ResultArrayFirst);

我上面的代码不起作用。执行上述代码后,所有复选框都会选中。我不确定我在这里缺少什么。任何帮助,将不胜感激。谢谢。

【问题讨论】:

    标签: javascript jquery gridview


    【解决方案1】:

    要检查复选框是否被选中,请使用:

    if (checkbox.is(':checked')) {
       // Do your stuff
    }
    

    所以,像这样改变你的代码:

    if ($(this).closest('tr').find('input[type="checkbox"]').is(':checked'))
    {
       ResultArrayFirst.push($(this).val());
    }
    

    【讨论】:

      【解决方案2】:

      你可以使用jquery的:checked选择器

       $('#<%= gdvRegretletter.ClientID %> input[type="hidden"]').each(function () {
           if ($(this).closest('tr').find('input[type="checkbox"]').is(":checked"))
           {
               ResultArrayFirst.push($(this).val());
           }
      
        });
      

      【讨论】:

        【解决方案3】:

        只需给复选框一个类,例如chk,而不是使用.map()而不是每个循环,它将获取数组中的项目,请在下面找到单行代码来实现

        var selected =  $(".chk:checked").map(function(i,el){return el.value;}).get();
        

        如果您只想检查是否选中了任何复选框,您可以执行以下操作,它将返回 bool

        $(".chk").is(":checked")
        

        【讨论】:

          猜你喜欢
          • 2016-02-16
          • 2011-01-13
          • 2014-03-02
          • 2014-02-07
          • 2011-05-04
          • 2014-01-24
          • 1970-01-01
          • 2016-03-04
          • 2010-10-28
          相关资源
          最近更新 更多