繁体   English   中英

确认 asp.net 按钮后触发回发警报

[英]Alert firing postback after confirmation asp.net button

我的 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>

和函数检查()

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。
但我不知道当用户按下 ok警报时,他会触发回发并删除用户,以便文档和一切保持活动状态,或者据我所知返回 true? 谢谢,问候

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

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

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

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

只有在此处返回 false,您才会中断 javascript,并且不会触发回发 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM