i am using gridview and it contains checkbox. i am not using any paging in the grid.
I used submit button for the customer new request.
whenever customer submit the request, it should validate and check 'atleast one checkbox"
The validate is throwing, but, immediately it will goes to server click event.
How to validate "pls select atleast one checkbox" before submitting to the server.
<script type="text/javascript">
function SelectAll(headerCheckBox) {
//Get the reference of GridView.
var GridView = headerCheckBox.parentNode.parentNode.parentNode;
//Loop through all GridView Rows except first row.
for (var i = 1; i < GridView.rows.length; i++) {
//Reference the CheckBox.
var checkBox = GridView.rows[i].cells[0].getElementsByTagName("input")[0];
checkBox.checked = headerCheckBox.checked;
}
}
</script>
<script type="text/javascript">
function SelectOne(chk) {
//Get the reference of GridView.
var GridView = chk.parentNode.parentNode.parentNode;
//Reference the Header CheckBox.
var headerCheckBox = GridView.rows[0].cells[0].getElementsByTagName("input")[0];;
var checked = true;
//Loop through all GridView Rows.
for (var i = 1; i < GridView.rows.length; i++) {
//Reference the CheckBox.
var checkBox = GridView.rows[i].cells[0].getElementsByTagName("input")[0];
if (!checkBox.checked) {
checked = false;
break;
}
}
headerCheckBox.checked = checked;
};
</script>
<script type="text/javascript">
function validateCheckBoxes(sender, args) {
var isValid = false;
var GridView = document.getElementById('<%= gvcustomer.ClientID %>');
for (var i = 1; i < GridView.rows.length; i++) {
//Reference the CheckBox.
var checkBox = GridView.rows[i].cells[0].getElementsByTagName("input");
if (checkBox.checked) {
isValid = true;
return true;
}
}
if (!isValid) {
alert("Please select atleast one checkbox");
return false;
}
}
</script>
<asp:GridView ID="gvcustomer" Width="100%" AutoGenerateColumns="False" runat="server"
Font-Size="12px"
OnRowDataBound="OnRowDataBound"
DataKeyNames="Id">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" onclick="SelectAll(this)" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chk" runat="server" onclick="SelectOne(this)" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label ID="Id" runat="server" Text='<%# Eval("Id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<table>
<tr >
<td >
<asp:Button ID="btnSubmit" runat="server" Text="SUBMIT"
OnClientClick="javascript:validateCheckBoxes()" OnClick="btnSubmit_Click" />
</td>
</tr>
</table>