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

时间:2020-01-30 12:47:24

标签: javascript asp.net button alert

我的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。
但是我不知道用户何时在警报上按ok时会触发回发并删除用户,以便文档和所有内容保持活动状态,或者据我所知返回true? 谢谢, 问候

1 个答案:

答案 0 :(得分:1)

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

因此,您的函数调用将返回true / false,然后无论如何都将执行doPostback。

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

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

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