使用jQuery停止Asp.net页面执行

时间:2014-01-08 15:15:02

标签: jquery asp.net

我想知道当jquery函数触发时如何在aspx页面中停止执行代码:

$(document).ready(function () {
            $("#btnSaveProvvisorio").click(function jControllaProvvisorio () {
                var i;
                var jElemento;
                $('.MyTextBoxClass').each(function (i, v) {
                    jElemento = $(this).val();
                    if (jElemento) {
                        if (isNaN(jElemento)) {
                            alert("Warning: " + jElemento + " is not a number!");
                            return false;
                        }
                        else
                            if (parseInt(jElemento) <= 0){
                                alert("Warning: " + jElemento + " is negative!");
                        return false;
                    }
                    }
                });
            });
        });

如何设置按钮:

<asp:Button ID="btnSaveProvvisorio" runat="server" style="text-align: center" Text="Salva provvisorio" OnClick="btnSaveProvvisorio_Click" BackColor="#FF6600" ClientIDMode="Static" OnClientClick="jControllaProvvisorio ()"/> ?

这个版本给了我一个错误;没有OnClientClick标记,页面aspx.cs无论如何都不会停止。 错误在哪里? 谢谢! 伊戈尔

2 个答案:

答案 0 :(得分:1)

对于您的按钮,您无需分配OnClientClick,因为您可以通过jQuery附加click事件。这意味着您的按钮看起来像:

<asp:Button ID="btnSaveProvvisorio" runat="server" 
            style="text-align: center" 
            Text="Salva provvisorio"
            OnClick="btnSaveProvvisorio_Click" 
            BackColor="#FF6600" 
            ClientIDMode="Static" />

在您的jQuery click事件中,您需要将event参数传递给您的函数,然后使用e.preventDefault()来停止服务器端执行。为此,您的jQuery将如下所示:

$(document).ready(function () 
{
    $("#btnSaveProvvisorio").on("click", function (e) 
    {
        var i;
        var jElemento;

        $('.MyTextBoxClass').each(function (i, v) 
        {
            jElemento = $(this).val();
            if (jElemento) 
            {
                if (isNaN(jElemento)) 
                {
                    alert("Warning: " + jElemento + " is not a number!");

                    // prevent ASP.NET server-side click from occurring.
                    e.preventDefault();
                }
                else if (parseInt(jElemento) <= 0)
                {
                    alert("Warning: " + jElemento + " is negative!");

                    // prevent ASP.NET server-side click from occurring.
                    e.preventDefault();
                }
            }
        });
    });
});

答案 1 :(得分:0)

确保您在“OnClientClick”中返回您调用的函数。所以你的按钮应该是:

<asp:Button ID="btnSaveProvvisorio" runat="server" style="text-align: center" Text="Salva provvisorio" OnClick="btnSaveProvvisorio_Click" BackColor="#FF6600" ClientIDMode="Static" OnClientClick="return jControllaProvvisorio();"/> ?
相关问题