2014-01-17 50 views
2

我在GRIDVIEW中有複選框和文本框。如果複選框沒有被選中,並且文本框沒有評論,那麼我想顯示一條消息,請在文本框中輸入註釋。如果所有複選框都被選中,我不想顯示任何消息。我想通過使用JavaScript來實現這一點,所以我嘗試過,但我還沒有完成,我整天都有一些問題。請幫忙。我只檢查複選框在這裏,而不是文本框,我不知道如何檢查複選框和文本框,所以請幫助。這裏是我的JavaScript:如何檢查是否使用JavaScript檢查GridView中的複選框

<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> 

回答

2

的文本框這應該工作: 編輯:編輯以反映所要求的變化。

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; 
} 
+0

感謝您的快速響應,但我沒有看到您正在檢查的文本框是否有任何意見。我想檢查複選框是否未選中,文本框是空白的,然後顯示消息。謝謝 – moe

+0

編輯我的答案。 – afzalulh

+0

非常感謝你,我會測試它,讓你知道很快 – moe

相關問題