考虑一个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秒钟,然后在用户可以在弹出窗口上进行选择之前回发页面。我在该事件处理程序上设置了断点,实际上页面已回发。
问题 当用户下定决心并点击弹出窗口上的“确定”或“取消”按钮时,如何延迟回发?
欢迎任何有关其他插件的建议!
答案 0 :(得分:3)
我想你会想要:
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()是否会再次触发事件,因此布尔值),但应该工作。
答案 1 :(得分:0)
我做了以下,并且它的工作原理:
var confirmed = false;
$(".removeItemLink").click(function() {
if (confirmed) { return true; }
var clickedObj = $(this);
jConfirm('Are you sure you want to remove this item?',
'Confirm Removal',
function(r) {
if (r) {
confirmed = true;
clickedObj.click();
confirmed = false;
}
});
return confirmed;
});
@Silky - 谢谢。
答案 2 :(得分:0)
您可以使用隐藏按钮,使用jquery“点击”。也许是这样的?
$(".removeItemLink").click(function() {
var clickedObj = $(this);
jConfirm('Are you sure you want to remove this item?',
'Confirm Removal',
function(r) {
if (r) {
clickedObj.parent().find(".hidden-button-with-event").click();
}
});
});
答案 3 :(得分:0)
检查此问题:
Using jquery-ui dialog as a confirm dialog with an ASP:LinkButton (how to invoke the postbck)
他正在使用jQuery标准对话框,但我很确定这也适用于此。