使用JQuery Dialog后停止回发?

时间:2010-12-06 17:00:12

标签: asp.net jquery jquery-ui

我有一个单击按钮时打开的JQuery对话框。第一次,它应该进行回发,但是当对话框关闭并且我点击broswer的刷新按钮时,它再次发送数据并复制我刚刚输入的数据。我应该在某处添加一个返回false,以便在关闭对话框时不回发。这是脚本:

$(document).ready(function () {
    $('#showTerms').click(function () {
        $('#terms').dialog({
            closeOnEscape: false, modal: true, width: 650, height: 400, title: 'Create New Group'
        });
        $('#terms').dialog('open');
        $("#terms").parent().appendTo($("form:first"));
    });
});

3 个答案:

答案 0 :(得分:0)

你可以通过一些JS魔法阻止按钮点击回发。更改按钮以添加UseSubmitBehavior =“false”和OnClientClick =“return false;”这样单击时就不会运行默认的回发操作。

接下来,在对话框处理程序中,当您要在按钮单击时回发时显式写入行:__ doPostBack('<%= btn.UniqueID%>','');它回发到代表按钮的服务器(虽然注意,第二个参数是附加在一起的命令名/ arg)。

HTH。

答案 1 :(得分:0)

您可以使用Post-Redirect-Get模式阻止此操作。

基本思想是你永远不会向用户发送POST请求的结果,只是GET。这样,用户永远不会双重提交,他们可以安全地为页面添加书签,并且他们的浏览器历史记录可以预测。

在此方法的代码隐藏处理程序中,只需重定向到当前页面,进行所需的任何更改,以指示用户接受条款。

答案 2 :(得分:0)

如果我理解你要做什么,试试这个......

将事件参数传递到您的点击响应函数(...click(function(eventParam){...),然后使用该事件参数从eventParam.preventDefault();按钮取消默认回发。