Asp.net 在asp:LinkButton单击事件上通过jQuery引发确认对话框

Asp.net 在asp:LinkButton单击事件上通过jQuery引发确认对话框,asp.net,jquery,jquery-plugins,webforms,Asp.net,Jquery,Jquery Plugins,Webforms,考虑一个ASP.NET webforms应用程序,其中要求在单击ASP:LinkButton时引发确认对话框。确认对话框的结果应允许或阻止linkButton\u click方法的回发 当前使用的插件/库是jquery.alerts.js(可在上找到) $(文档).ready(函数(){ $(“#ctl00_main content_lnkDisable”)。单击(函数(){ jConfirm('请确认应禁用此emp?', “确认禁用”, 功能(r){ jAlert(“确认:”+r,“结果”)

考虑一个ASP.NET webforms应用程序,其中要求在单击
ASP:LinkButton
时引发确认对话框。确认对话框的结果应允许或阻止
linkButton\u click
方法的回发

当前使用的插件/库是
jquery.alerts.js
(可在上找到)


$(文档).ready(函数(){
$(“#ctl00_main content_lnkDisable”)。单击(函数(){
jConfirm('请确认应禁用此emp?',
“确认禁用”,
功能(r){
jAlert(“确认:”+r,“结果”);
});
}); 
});         

消息框正常启动

问题 问题是,它会显示大约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()是否会再次触发事件,因此使用布尔值),但它应该可以工作。

我做了以下操作,它可以工作:

            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;
            });

@丝滑-谢谢。

您可以使用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();
      }
  });
});
检查此问题:


他使用的是jQuery标准对话框,但我很确定这也适用于这里。

谢谢Silky。。。事实上,返回听起来合乎逻辑,而且可能是最终解决方案的一部分。但是,在本例中,它并没有阻止回发的发生。pcampbell:有意义,我想您需要确定如何使该对话框成为模态。它可能是该函数中的一个选项/参数。快速阅读站点后,您似乎无法使其成为模态。那有点烦人。那么你要做的是更复杂一点。我会更新主帖子。如果我需要同样的链接按钮在网格内呢view@Krunal:谢谢你的回答。不幸的是,这对我不起作用。
$(".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();
      }
  });
});