net application with jquery. I have one button and gridview with checkbox. If none of the checkboxes are checked i dont want to button to fire and go to server side. I am trying as below.
This is my button.
<asp:Button ID="btnRegretletter" runat="server" Text="Send Regret Letter" class="submitLink blueButton" OnClientClick="javascript:check()" OnClick="btnRegretletter_Click" ValidationGroup="VGsubmit" />
function check() {
alert("I have been called");
var valid = false;
var ResultArrayFirst = [];
$('#<%= gdvRegretletter.ClientID %> input[type="hidden"]').each(function () {
if ($(this).closest('tr').find('input[type="checkbox"]').is(':checked'))
{
ResultArrayFirst.push($(this).val());
}
});
alert(ResultArrayFirst);
if (ResultArrayFirst.length > 0) {
valid = true;
}
else
{
alert("Please select at least one vendor to send Regret Letter.");
valid = false;
return valid;
}
}
return valid;
should be outside else part like following snippet, because in your case if length would be greater than 0 function will not return.
if (ResultArrayFirst.length > 0) {
valid = true;
}
else
{
alert("Please select at least one vendor to send Regret Letter.");
valid = false;
}
return valid;
Plus you need to check it like this :
OnClientClick="return check()"