[英]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.