Jquery不返回false并继续执行其余代码

Jquery不返回false并继续执行其余代码,jquery,asp.net,Jquery,Asp.net,net应用程序和jquery。我有一个按钮和带有复选框的gridview。如果没有选中任何复选框,我不想启动按钮并转到服务器端。我试着如下 这是我的钮扣 <asp:Button ID="btnRegretletter" runat="server" Text="Send Regret Letter" class="submitLink blueButton" OnClientClick="javascript:check()" OnClick="btnRegretletter_Cli

net应用程序和jquery。我有一个按钮和带有复选框的gridview。如果没有选中任何复选框,我不想启动按钮并转到服务器端。我试着如下

这是我的钮扣

   <asp:Button ID="btnRegretletter" runat="server" Text="Send Regret Letter" class="submitLink blueButton" OnClientClick="javascript:check()" OnClick="btnRegretletter_Click" ValidationGroup="VGsubmit" />
这是我的jquery代码

 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;
        }
 $("#<%=gdvRegretletter.ClientID %> tr").each(function () {
            //Skip first(header) row
            if (!this.rowIndex) return;

            var status = $(this).find("td:last").text().trim();
            if (status == "Awarded" || status == "Rejected") {
            $(this).closest('tr').find('input[type="checkbox"]').prop('checked', false);
            }
     });
}
在上面的代码中,每当我没有从gridview中选择任何复选框时,我的变量将为null,我的else部分将执行。我可以发出警报,但一旦我的警报发出并单击ok,我的页面就会刷新,它将到达服务器端。我可以知道如何预防吗?任何帮助都将不胜感激。谢谢。

您没有使用check方法的返回值

您没有使用check方法的返回值

返回有效;应该在下面代码段的else部分之外,因为在您的情况下,若长度大于0,函数将不会返回

if (ResultArrayFirst.length > 0) {
   valid = true;
}
else
{
    alert("Please select at least one vendor to send Regret Letter.");
    valid = false;
}
return valid;
另外,您需要这样检查:

OnClientClick="return check()"
您也可以像下面的代码片段一样检查它:

OnClientClick="if (!check()) { return false;};"
返回有效;应该在下面代码段的else部分之外,因为在您的情况下,若长度大于0,函数将不会返回

if (ResultArrayFirst.length > 0) {
   valid = true;
}
else
{
    alert("Please select at least one vendor to send Regret Letter.");
    valid = false;
}
return valid;
另外,您需要这样检查:

OnClientClick="return check()"
您也可以像下面的代码片段一样检查它:

OnClientClick="if (!check()) { return false;};"

但我正在做一些其他的计算,也在检查函数中。我将发布上面的代码,而这段代码现在不起作用。请告诉我原因好吗?您是否将此OnClientClick=javascript:check更改为OnClientClick=return check@NiranjanGodbolePlus您是否收到此警报请至少选择一个供应商发送遗憾信@NiranjanGodbole@NiranjanGodbole您不需要指定valid=false;这已经是假的了。改变你的onclientclickb,但我正在做一些其他的计算,也在check函数中。我将发布上面的代码,而这段代码现在不起作用。请告诉我原因好吗?您是否将此OnClientClick=javascript:check更改为OnClientClick=return check@NiranjanGodbolePlus您是否收到此警报请至少选择一个供应商发送遗憾信@NiranjanGodbole@NiranjanGodbole您不需要指定valid=false;这已经是假的了。更改OnClientClick