单击jQuery对话框按钮进行回发

时间:2011-11-19 18:50:29

标签: jquery asp.net .net dialog

我在页面上有一个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();
                }
            }
        });
    });

问题是:一旦我点击按钮,会出现一个对话框,页面得到回发。我想在用户点击对话框中的按钮后回发页面。

4 个答案:

答案 0 :(得分:2)

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

更新:更确切地说,event.preventDefault();也将停止当时的任何默认行为,例如表单提交。

答案 1 :(得分:0)

asp on:按钮中的onClick函数与JavaScript onClick同时被调用。

答案 2 :(得分:0)

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

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

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

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

答案 3 :(得分:0)

标记式:

<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;
}