【问题标题】:Alert firing postback after confirmation asp.net button确认asp.net按钮后警报触发回发
【发布时间】:2020-01-30 12:47:24
【问题描述】:

我的 asp.net 应用程序中的 javascript 警报有些奇怪。我有需要从数据库中删除用户的按钮。但用户可以有文件,也可以有保险单。
因此,如果用户有任何文件或政策,我想触发 javascript 警报。该警报将显示“您需要删除文档和/或政策。但如果用户没有这些文件和/或政策,则需要在您需要选择是否删除的地方触发确认框。
所以我的 .aspx 代码看起来像这样

<asp:Button ID="btnDelete" class="btn btn-danger" runat="server" Text="Izbriši" OnClick="btnDelete_Click" 
                                                                onClientClick="check()">
                                                            </asp:Button>

和函数check()

function check() {
            var totalRows = $("#<%=gvDocuments.ClientID %> tr").length-1;
            var totalRows1 = $("#<%=gvPolice.ClientID %> tr").length-1;
            if (totalRows > 0 || totalRows1 > 0) {
                alert('Izbrišite ' + totalRows + ' dokumenta i ' + totalRows1 + ' polica klijenta prije nego ga možete izbrisati!');
//Here I check and count is there any documents or policies
                return false;
            }
            else {
                var r = confirm('Jeste li sigurni da želite izbrisati klijenta?')
                if (r == true) {
                    return true;
                }
                else {
                    return false;
                }
            }
        }

所以我的确认块正在运行。您按 OK 并删除,或按取消并返回 false。
但我不知道当用户在 alert 上按下“确定”时,他会触发回发并删除用户,以便文档和所有内容都保持活动状态,或者据我所知返回 true? 谢谢, 问候

【问题讨论】:

    标签: javascript asp.net button alert


    【解决方案1】:

    在浏览器中检查您的按钮,您会看到 Asp.net 将在您的 onclientclick 代码之后立即执行其 doPostback javascript(在线或表单提交)!

    所以你的函数调用将返回真/假,然后 doPostback 无论如何都会执行。

    您需要做的是像这样处理内联函数的返回:

    onClientClick="if(check() === false){return false;}"
    

    这里只有返回false,才会中断javascript,回发不会触发:)

    【讨论】:

    • 谢谢你的作品就像一个魅力。我找到了这样的解决方案,但我认为即使在确认中单击它也会返回错误。
    猜你喜欢
    • 2012-12-13
    • 2023-03-26
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 2010-10-14
    • 2011-06-24
    • 1970-01-01
    • 2015-06-07
    相关资源
    最近更新 更多