【问题标题】:jQuery dialog not opening on button click - asp.net web page单击按钮时未打开 jQuery 对话框 - asp.net 网页
【发布时间】:2013-02-04 19:18:53
【问题描述】:

我是 jQuery 新手,当用户单击页面提交按钮时,我正在努力打开一个 jQuery 对话框;任何帮助将不胜感激!

我搜索过其他帖子、google 等,但显然还是不太明白。我在下面包含代码的相关部分。仅供参考,我正在使用 Telerik 控件,提交按钮位于表格中。这是一个相当大的 asp.net/vb.net Web 应用程序中的一个页面,它确实使用了母版页。

最终我想为用户提供一个是、否、取消对话框,但此时我只是想让一个对话框简单地打开。

<script type="text/javascript">
function confirmSubmit2(sender, args) {
    var rblNextStep = document.getElementById("<%= cbNextStep.ClientID %>");
    var radioButtons = rblNextStep.getElementsByTagName('input');
    var selectedButton = radioButtons.length - 1;

    if (radioButtons[selectedButton].checked) {
        var hasItems = document.getElementById('<% =hfHasItems.ClientId %>').value

        if (parseInt(hasItems) != 0)
            jQuery("#dialog").dialog('open');
    }
}

    $(function () {
        $("#dialog").dialog({
            resizable: false,
            height: 140,
            modal: true,
            buttons: {
                "Delete all items": function () {
                    $(this).dialog("close");
                },
                Cancel: function () {
                    $(this).dialog("close");
                }
            }
        });
    });

<td style="font-family: Times New Roman; font-size: medium; width: 33%; text-align: left;">
    <div id="dialog">
     <asp:Panel ID="btnSubmitWrapper" runat="server">
        <telerik:RadButton ID="btnSelSubmit" runat="server" Skin="Sunset" Text="Submit"
            ValidationGroup="Review" Width="98%" OnClientClicked="confirmSubmit2"
            SingleClick="true" SingleClickText="Submitting..." DisabledButtonCssClass="btnDisable">
        </telerik:RadButton>
    </asp:Panel>
    </div>
</td>

谢谢!

【问题讨论】:

  • 您已经在使用 jQuery。为什么要打扰 document.getElementById?
  • 你有,但你错过了将它添加为代码块 - { } 在编辑器中。
  • 嗨 :) 'confirmsumbit2' javascript 函数已经存在,因为我最初只是提醒用户项目存在。但是,我想给用户一个机会来做是,不,取消,所以我试图利用 jQuery 的对话框,因为 javascript 的确认框只有确定和取消选项。所以我取出了confirmsubmit2函数中显示警报的那行代码,并用jquery对话框打开调用替换了它。

标签: jquery asp.net button dialog


【解决方案1】:

看起来您并没有真正正确地调用对话框插件。

要打开对话框,为什么不直接使用 jquery 并执行类似的操作来连接点击事件。

$("#<%=btnSelSubmit.ClientID %>").click(function () {
    var dlg = $("#Dialog").dialog({
        title: "Something here",
        autoOpen: true,
        width: 600,
        modal: true
        }
    });

【讨论】:

  • 克里斯,感谢您的回复。 :) 当用户提交页面时,我想显示一个弹出窗口,询问用户一个问题。除非他们选择取消,否则我需要进行一些服务器端处理。所以我想使用客户端的 onclick 事件来呈现弹出窗口,并使用服务器端的 click 事件来执行提交的逻辑。如果我理解正确,您的建议是在按钮单击事件上打开对话框,对吗?
  • 这是我提供的代码,但您可以轻松地将其更改为仅限客户端的事件(使用另一个对象而不是具有服务器端事件的 btn)。由于对话框在页面中加载的方式,从 jquery 的对话框中获取服务器端事件可能相当棘手,它们实际上被移动到页面的末尾,这往往会与 DOM 一起玩
  • 我能够显示一个带有以下代码的对话框。现在,当我取消对话框时,我会收到“TypeError: a[b] is not a function”消息。我仍在玩弄代码并进行一些搜索。 :) 我想我理解你说的很棘手;我最终可能会走一条不同的路线,但计划多做一点,因为我从经验中学到了很多东西。 ...对不起格式,显然我还在学习如何在这个网站上发帖,哈哈。
  • jQuery(function () { jQuery(".confirm").dialog({ resizable: true, height: 300, width: 300, modal: true, buttons: { "删除所有项目": function () { jQuery(this).dialog("close"); }, "保留所有项目": function () { jQuery(this).dialog("close"); }, 取消: function () { jQuery( this).dialog("close"); } } }); }); jQuery(".confirm").dialog({ autoOpen: false });
  • 您可以使用新代码更新您的原始帖子(编辑),cmets 并不能很好地接受代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-05
相关资源
最近更新 更多