首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过asp:LinkButton单击事件通过jQuery引发确认对话框

通过asp:LinkButton单击事件通过jQuery引发确认对话框
EN

Stack Overflow用户
提问于 2009-08-19 02:43:42
回答 4查看 6K关注 0票数 4

考虑一个ASP.NET webforms应用程序,其中的要求是在单击asp:LinkButton时启动一个确认对话框。确认对话框的结果应该允许或阻止linkButton_click方法的回发。

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

代码语言:javascript
复制
<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秒,然后页面被回发,然后用户才能在弹出窗口上进行选择。我已经在该事件处理程序上设置了一个断点,并且页面实际上是回发的。

问题:当用户下定决心并单击弹出窗口上的OK或Cancel按钮时,如何延迟回发?

欢迎对另一个插件的任何建议!

EN

回答 4

Stack Overflow用户

发布于 2009-08-19 02:46:06

我想你会想:

代码语言:javascript
复制
return jConfirm('Please confirm this emp should be disabled?', 

(请注意添加“返回”语句)。

但我不能百分之百确定“jConfirm”函数是如何工作的。

-编辑

这个对话有可能(很可能,事实上)不是模态。看看你是否能弄清楚如何做到这一点(或者更有可能有人会回复)。

通过一个典型的JavaScript确认虽然你可以.

代码语言:javascript
复制
return confirm("Are you sure?");

但我想你想要漂亮的

-编辑

既然它不能变成模态,也许是这样的:

代码语言:javascript
复制
    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()是否会再次触发事件,从而触发布尔值),但它应该能工作。

票数 3
EN

Stack Overflow用户

发布于 2010-01-06 06:44:20

我做了以下的工作:

代码语言:javascript
复制
            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 -谢谢。

票数 0
EN

Stack Overflow用户

发布于 2010-10-19 14:29:23

您可以使用jquery“单击”隐藏按钮。也许是这样的?

代码语言:javascript
复制
$(".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();
      }
  });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1297597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档