Fra*_*ran 5 javascript c# asp.net jquery bootbox
在aspx页面中,有一个像这样的asp:linkbutton:
<asp:LinkButton runat="server" ID="btExit" Text="Exit"
OnClientClick="javascript:return confirmExit();"
EnableViewState="false"
OnClick="ExitButtonClick"></asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)
这是 JavaScript 函数:
<script type="text/javascript">
function confirmExit() {
bootbox.confirm("Are you sure?", function (confirmed) {
return confirmed;
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
问题是,据我所知, bootbox.confirm 是异步工作的,并且后面代码上的 ExitButtonClick 函数是在不等待用户确认的情况下执行的。
我找到了一个有效的解决方案,使用隐藏按钮:
<asp:LinkButton runat="server" ID="btExit" Text="Exit"></asp:LinkButton>
<asp:Button runat="server" ID="btExitHidden" onclick="ExitButtonClick" style="display:none;" />
Run Code Online (Sandbox Code Playgroud)
这是 javascript 部分:
<script type="text/javascript">
$("#btExit").click(function (e) {
e.preventDefault();
bootbox.confirm("Are you sure?", function (confirmed) {
if (confirmed) {
$("#btExitHidden").click();
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我的问题是是否有一种更“漂亮”和“标准”的方式与 Bootbox.confirm 同步工作,而不使用隐藏按钮。
Ale*_*mov -2
我的解决方案
@Html.ActionLink("Delete", "DeleteReport", new { id = item.Id }, new { @class = "btn btn-danger", onclick = String.Format("return ASE.ConfirmAction(this.href, 'Delete {0}?');", item.Name) })
Run Code Online (Sandbox Code Playgroud)
var ASE = {
ConfirmAction: function (href, text) {
bootbox.confirm(text, function (result) {
if (result)
window.location = href;
});
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6113 次 |
| 最近记录: |