2

我正在使用 jquery 对话框,当用户单击确定时,应触发服务器端 onclick 事件,如果单击取消,则什么也没有发生。

我必须通过 preventDefault() 函数在一开始就阻止点击函数。

  $(document).ready(function () {
         $("#<%=submit.ClientID %>").click(function (event) {
             event.preventDefault();
                $("#confirm").dialog({
                    buttons: {
                        "OK": function () {  $(this).dialog("close"); 
                              Here should be the code to trigger the server side click event


                     },
                        "Cancel": function () { $(this).dialog("close");},
                    } 
                });
         });
     });

我不知道如何触发服务器端 onclick 事件。有任何想法吗?谢谢

4

4 回答 4

1

https://stackoverflow.com/a/10583339/1202242

我用了两个按钮,一个是隐藏的。完美解决了我的问题

于 2012-05-18T12:53:02.030 回答
0

将它event.preventDefault()放在取消部分或某种条件中,这样它就不会在每次点击时运行。

于 2012-05-11T18:56:14.557 回答
0

我认为您在服务器端和客户端之间感到困惑。如果你想在服务器端触发事件,你需要通知他(可以通过 ajax 调用来完成)。click 事件是客户端事件,不会在服务器端执行任何操作。尝试在“OK”函数下放置一些代码,以通过ajax调用通知服务器您想要的任何内容。

无论如何,您应该将event.preventDefault()呼叫移至“取消”功能。

编辑:处理它的另一种方法是防止提交发生,如果你不想要它。在您的表单标签添加onsubmit="foo()" 并定义:

function foo(){
   //call your dialog and return true to continue the submit and false to cancel.
}
于 2012-05-11T18:57:51.067 回答
0

它看起来有点依赖于实现细节(即使它们被广泛使用以至于它们不会被改变)但代码是这样的:

__doPostBack('submit','OnClick');

OnClick这将为名为 的控件执行事件处理程序submit。作为参考,请查看这个关于回发如何在 ASP.NET中工作的小教程。

于 2012-05-11T18:58:35.883 回答