如何使用JavaScript检查GridView中的复选框是否已选中

如何使用JavaScript检查GridView中的复选框是否已选中,javascript,asp.net,gridview,checkbox,Javascript,Asp.net,Gridview,Checkbox,我在GRIDVIEW中有复选框和文本框。如果未选中复选框且文本框中没有注释,则我希望显示一条消息,内容为“请在文本框中输入注释”。如果选中所有复选框,我不想显示任何消息。我想通过使用JavaScript来实现这一点,所以我已经尝试过了,但我还没有完全做到这一点,我整天都在使用JavaScript。请帮忙。我只是在这里选中复选框,而不是文本框,我不知道如何同时选中复选框和文本框,所以请帮助。以下是我的JavaScript: <script type="text/javascript">

我在GRIDVIEW中有复选框和文本框。如果未选中复选框且文本框中没有注释,则我希望显示一条消息,内容为“请在文本框中输入注释”。如果选中所有复选框,我不想显示任何消息。我想通过使用JavaScript来实现这一点,所以我已经尝试过了,但我还没有完全做到这一点,我整天都在使用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>

函数验证(){
var标志=真;
var checkbox=新数组();
var gridview=document.getElementById(“”);
checkbox=gridview.getElementsByTagName('myCheckbox');
对于(变量i=0;i
这是我的复选框和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>

这应该可以: 编辑:编辑以反映请求的更改

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;
}
函数验证(){
var标志=假;
var gridView=document.getElementById(“”);
对于(var i=1;i1&&inputs[0]!=null&&areas!=null&&areas.length>1&&areas[0]!=null){
if(区域[1]。类型==“textarea”&&inputs[0]。类型==“复选框”){
var txtval=面积[1]。值;
如果(!inputs[0]。选中&&(txtval==“”| | txtval==null)){
flag=false;
打破
}
否则{
flag=true
}
}
}
}
如果(!标志){
提醒('请输入评论。谢谢');
}
返回标志;
}

感谢您的快速回复,但我看不出您在哪里检查文本框是否有任何注释。我想检查复选框是否未选中,文本框是否为空,然后显示消息。谢谢你这么多,我会测试它,让你知道我刚刚测试,我只是得到消息,每次即使条件是真的或假。这里是条件,如果选中复选框,则我不需要在文本框中输入任何注释,但如果未选中复选框,则需要注释。我快到了,请帮忙。谢谢你,忘了你有textarea,而不是textbox。请检查编辑的代码。很抱歉,我忘了提到我有两个文本框和两个复选框。代码如何知道它正在检查哪一个?以下是我的gridview中控件的顺序:下拉文本框1文本框2复选框1复选框2。我想检查textbox2和checkbox1。谢谢