【问题标题】:Do Postback on the click of jQuery dialog button单击 jQuery 对话框按钮执行回发
【发布时间】:2011-11-19 18:50:29
【问题描述】:

我在页面上有一个 asp.net 按钮控件。

<asp:Button ID="btnFinishReceiving" runat="server" Text="Finished Receiving" Width="168px"
                                    OnClick="btnFinishReceiving_Click" />

点击它我会打开一个对话框。

$("#<%= btnFinishReceiving.ClientID %>").click(function() {
            $("[id*='ConfirmDialog']").dialog('open');

        });

$(document).ready(function() {
   $("[id*='ConfirmDialog']").dialog({
            autoOpen: false,
            width: 600,
            buttons: {
                "Yes": function() {
                    return true;
                },
                "No": function() {
                    return ValidateClientInfo();
                }
            }
        });
    });

问题是:当我点击按钮时,弹出对话框并且页面得到回发。一旦用户单击对话框中的按钮,我想回发页面。

【问题讨论】:

    标签: jquery asp.net .net dialog


    【解决方案1】:

    让表单的“onSubmit”函数返回 false。

    更新:为了更加确定,event.preventDefault();届时也会停止任何默认行为,例如表单提交。

    【讨论】:

    • 这些不起作用 - 问题是 .net 发出的 javascript。
    【解决方案2】:

    asp:button 中的 onClick 函数与 JavaScript onClick 同时被调用。

    【讨论】:

      【解决方案3】:

      @Matt 是对的,您必须修改附加到 asp.net 按钮的 js 函数。

      $("#<%= btnFinishReceiving.ClientID %>").click(function(evt) {
          $("[id*='ConfirmDialog']").dialog('open');
          evt.preventDefault();
      });
      

      这应该可以防止立即回发,无论如何我认为这种方法不会达到您的期望:“return true;” “Yes”按钮的功能内部不会引发asp.Button提供的原始回发功能。

      查看this answer 以获得更好的解释(忽略它在中继器中使用的事实,您的情况可以使用相同的方法)。

      【讨论】:

        【解决方案4】:

        标记:

        <asp:Button ID="btnFinishReceiving" runat="server" Text="Finished Receiving" Width="168px"
        OnClick="btnFinishReceiving_Click" OnClientClick="return openDialog();" />
        

        JS:

        function openDialog() {
           $("[id*='ConfirmDialog']").dialog('open');
           return false;
        }
        

        【讨论】:

          猜你喜欢
          • 2013-12-26
          • 1970-01-01
          • 2013-04-06
          • 1970-01-01
          • 1970-01-01
          • 2015-01-20
          • 1970-01-01
          • 1970-01-01
          • 2013-04-10
          相关资源
          最近更新 更多