考虑一个 ASP.NET Webforms 应用程序,其中要求在单击 asp:LinkButton
时引发确认对话框。确认对话框的结果应允许或阻止 linkButton_click
方法的回发。
当前使用的插件/库是jquery.alerts.js
(位于ABeautifulSite)。
<script src="http://labs.abeautifulsite.net/projects/js/jquery/alerts/demo/jquery.js"
type="text/javascript"></script>
<script src="http://labs.abeautifulsite.net/projects/js/jquery/alerts/demo/jquery.ui.draggable.js"
type="text/javascript"></script>
<!-- Core files -->
<script src="http://labs.abeautifulsite.net/projects/js/jquery/alerts/demo/jquery.alerts.js"
type="text/javascript"></script>
<link href="http://labs.abeautifulsite.net/projects/js/jquery/alerts/demo/jquery.alerts.css"
rel="stylesheet" type="text/css" />
<asp:LinkButton runat="server" ID="lnkDisable"
Text="Disable This Emp" onclick="lnkDisable_Click" />
<script type="text/javascript">
$(document).ready(function() {
$("#ctl00_mainContent_lnkDisable").click(function() {
jConfirm('Please confirm this emp should be disabled?',
'Confirm Disable',
function(r) {
jAlert('Confirmed: ' + r, 'Results');
});
});
});
</script>
消息框正常触发!
问题 问题是它显示大约 2 秒,然后在用户可以在弹出窗口上进行选择之前回发页面。我已经在该事件处理程序上设置了一个断点,并且页面确实被回发了。
问题 当用户做出决定并单击弹出窗口上的“确定”或“取消”按钮时,如何延迟回发?
欢迎对其他插件提出任何建议!
最佳答案
我想你会想要:
return jConfirm('Please confirm this emp should be disabled?',
(注意添加“return”语句)。
但我并不能 100% 确定“jConfirm”函数是如何工作的。
-- 编辑
该对话框有可能(事实上很可能)不是模态的。看看你是否能弄清楚如何做到这一点(或者更有可能有人会回复)。
使用典型的 JavaScript 确认,您可以执行...
return confirm("Are you sure?");
但我假设你想要漂亮的:)
-- 编辑
鉴于它不能做成模态,也许是这样的:
var confirmed = false;
$("#ctl00_mainContent_lnkDisable").click(function() {
if( confirmed ){ return true; }
jConfirm('Please confirm this emp should be disabled?',
'Confirm Disable',
function(r) {
jAlert('Confirmed: ' + r, 'Results');
confirmed = true;
#("ctl00_mainContent_lnkDisable").click();
confirmed = false;
});
});
return false;
});
未经测试,而且相当愚蠢(我不确定调用 .click() 是否会再次触发该事件,因此是 bool 值),但它应该可以工作。
关于asp.net - 通过 jQuery 在 asp :LinkButton click event 上引发确认对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1297597/