繁体   English   中英

在asp:LinkBut​​ton点击事件上通过jQuery发出一个确认对话框

[英]raising a confirm dialog via jQuery on asp:LinkButton click event

考虑一个ASP.NET webforms应用程序,其中要求在单击asp:LinkButton时引发确认对话框。 确认对话框的结果应允许或阻止linkButton_click方法的回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()是否会再次触发事件,因此布尔值),但它应该工作。

我做了以下,它的工作原理:

            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 - 谢谢。

您可以使用隐藏按钮,使用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-ui对话框作为ASP的确认对话框:LinkBut​​ton(如何调用postbck)

他正在使用jQuery标准对话框,但我很确定这也适用于此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM