【问题标题】:How to check if checkbox that is in GridView is checked using JavaScript如何检查是否使用 JavaScript 检查了 GridView 中的复选框
【发布时间】:2014-02-07 07:42:08
【问题描述】:

我在 GRIDVIEW 中有复选框和文本框。如果未选中复选框并且文本框没有 cmets,那么我想显示一条消息,说请在文本框中输入 cmets。如果选中所有复选框,我不想显示任何消息。我想通过使用 JavaScript 来实现这一点,所以我已经尝试过了,但我还没有完全做到这一点,我整天都遇到了一些问题。请帮忙。我只在这里检查复选框而不是文本框,我不确定如何同时检查复选框和文本框,所以请帮忙。这是我的 JavaScript:

<script type="text/javascript">
          function validate() {
              var flag = true;
              var checkbox = new Array(); 
              var gridview = document.getElementById('<%=GridView1.ClientID%>');
              checkbox = gridview.getElementsByTagName('myCheckbox');
              for (var i = 0; i < checkbox.length; i++) {
                  if (checkbox.item(i).checked) 
                  {
                      flag = false;
                      break;
                  }
              }
              if (!flag) {
                  alert('Please enter comments.  Thanks');

              }
              return flag;
          }
</script>

这是我的复选框和 aspx 文件中的文本框

<asp:TemplateField ItemStyle-Width="150px" HeaderText="Comments">
  <ItemTemplate>
  <asp:TextBox ID="txtComm" runat="server" TextMode="MultiLine" Width="130px" Height="50px"    BackColor="LightGoldenrodYellow"
   Text='<%# Eval("COMMENTS")%>'></asp:TextBox>
   </ItemTemplate>
  </asp:TemplateField>

     <asp:TemplateField ItemStyle-Width="15px" HeaderText="Approved?">
       <ItemTemplate>
      <asp:CheckBox ID="mycheckbox" runat="server"  Checked='<%#Eval("APPR")==DBNull.Value?  false:Eval("APPR") %>' />
        </ItemTemplate>
       </asp:TemplateField>

【问题讨论】:

    标签: javascript asp.net gridview checkbox


    【解决方案1】:

    这应该有效: 编辑:已编辑以反映请求的更改。

    function validate() {
        var flag = false;
        var gridView = document.getElementById('<%= GridView1.ClientID %>');
    
        for (var i = 1; i < gridView.rows.length; i++) {
            var inputs = gridView.rows[i].getElementsByTagName('input');
            var areas = gridView.rows[i].getElementsByTagName('textarea');
            if (inputs != null && inputs.length > 1 && inputs[0] != null && areas != null && areas.length > 1 && areas[0] != null) {
                if (areas[1].type == "textarea" && inputs[0].type == "checkbox") {
                    var txtval = areas[1].value;
                    if (!inputs[0].checked && (txtval == "" || txtval == null)) {
    
                        flag = false;
                        break;
                    }
                    else {
                        flag = true
                    }
                }
            }
        }
        if (!flag) {
            alert('Please enter comments.  Thanks');
    
        }
        return flag;
    }
    

    【讨论】:

    • 感谢您的快速响应,但我看不到您在哪里检查文本框是否有任何 cmets。我想检查复选框是否未选中并且文本框为空白然后显示消息。谢谢
    • 非常感谢,我会测试它并尽快通知您
    • 我刚刚测试过,每次都收到消息,即使条件为真或假。这是条件,如果选中了复选框,那么我不需要在文本框中输入任何 cmets,但是,如果未选中复选框,则需要 cmets。我快到了,所以请帮忙。谢谢
    • 抱歉,忘记了你有文本区域,而不是文本框。请检查编辑后的代码。它在测试中运行良好。
    • 对不起,我忘了提到我有 2 个文本框和 2 个复选框,代码如何知道它检查的是哪一个?这是我的gridview中控件的顺序:下拉文本框1文本框2复选框1复选框2。我想检查 textbox2 和 checkbox1。谢谢
    猜你喜欢
    • 2016-08-20
    • 2016-06-12
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 2013-02-15
    相关资源
    最近更新 更多