asp.net - 通过 jQuery 在 asp :LinkButton click event 上引发确认对话框

标签 asp.net jquery jquery-plugins webforms

考虑一个 ASP.NET Webforms 应用程序,其中要求在单击 asp:LinkBut​​ton 时引发确认对话框。确认对话框的结果应允许或阻止 linkBut​​ton_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>

alt text

消息框正常触发!

问题 问题是它显示大约 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/

相关文章:

javascript - 如何使用 javascript 来验证表单?

javascript - 如何在 Jquery 中删除克隆的 div

javascript - 如何为 jQuery 提示添加宽度属性?

c# - StructureMap 认为它必须注入(inject)构造函数并抛出异常

c# - 在用户控件(代码隐藏)中为 wpf 文本框更改 'isenabled'

c# - TextBoxFor decimal

c# - .Net 4.0 框架和 4.5 框架之间的区别?

jquery - 在 Web 入门工具包中插入 jquery

javascript - jQuery:如何在整个文档主体中全局获取我悬停的最里面的 dom 元素?

javascript - 表格单元格上的 jQuery 可排序插件在拖动时缩小