我的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?
谢谢,
问候
答案 0 :(得分:1)
检查浏览器中的按钮,您将看到Asp.net将在您的onclientclick代码之后立即执行其doPostback javascript(在线或在表单提交中)!
因此,您的函数调用将返回true / false,然后无论如何都将执行doPostback。
您需要做的是像这样处理内联函数的返回:
onClientClick="if(check() === false){return false;}"
仅在此处返回false,您才会中断javascript,并且不会触发回发:)