jQuery提交和海森堡效应

jQuery提交和海森堡效应,jquery,asp.net,Jquery,Asp.net,我正在尝试做一个form.submit,它将在服务器端调用一个非静态事件并强制进行完整的回发;然而,我遇到了海森堡效应的一个例子。如果我在下面代码的第3行放置一个断点,代码将获得消息,提交工作正常。如果我将断点放在第4行,则提交失败。服务器代码实际上获取事件,但客户端似乎不想等待服务器完成它的任务。正确的函数应该是永远不要执行第4行 1) function LoginSubmit() { 2) $("#diagnostics").text("LoginSubmit started"); 3

我正在尝试做一个form.submit,它将在服务器端调用一个非静态事件并强制进行完整的回发;然而,我遇到了海森堡效应的一个例子。如果我在下面代码的第3行放置一个断点,代码将获得消息,提交工作正常。如果我将断点放在第4行,则提交失败。服务器代码实际上获取事件,但客户端似乎不想等待服务器完成它的任务。正确的函数应该是永远不要执行第4行

1) function LoginSubmit() {
2)    $("#diagnostics").text("LoginSubmit started");
3)    $("#<%=btnLoginSubmit.ClientID %>").click();
4)    $("#diagnostics").text("LoginSubmit failed");
5)    }

不,如果不使用AJAX,这是不可能的。我怀疑提交失败了,我想它只是在显示信息。程序流不会因为调用DOM元素的
click()
函数而停止

更新:尝试此操作以触发C#按钮事件:

$("#<%=btnLoginSubmit.ClientID %>").trigger('click');
$(“#”)触发器('click');

Javascript与服务器异步通信。脚本不会等待服务器完成任何操作,然后再继续,除非您在代码中构建了明确执行此操作的内容(例如ajax和回调)

在什么情况下,您希望显示错误消息?帖子总是会导致页面被重画。在DOM完成之前,仍然可以使用代码更新DOM(比如现在的代码),但是无论在那篇文章中发生了什么,这一大块代码永远都不会知道。。。因为当帖子完成后,它将被其他东西取代


如果登录失败,您应该让服务器代码显示一条错误消息,或者使用AJAX更新DOM并在根本不发布的情况下执行。

如果第4行永远不会执行,那么第4行的代码的意义是什么?Nickpick:您指的是,而不是。没有调用C#event btnLoginSubmit#Click,这就是这样做的全部意义。我看不到用AJAX实现所需功能的方法,因为这要求事件是静态的,我需要事件能够访问其范围之外的属性和方法,因此它不能是静态的,因此AJAX在这种情况下不起作用。@jamietre-我想让帖子完全按照您所描述的那样发生。第4行的目的是证明POST没有发生。服务器代码在被调用时会显示一条确认消息,但它没有被唤醒,这就是问题所在。您的问题的结果基本上是
$(“#”)。单击()未导致提交?e、 g.除了那一行之外,它根本不起作用?@jamietre-如果我在FireBug的第3行暂停程序,然后单击“继续”,它就起作用了。如果没有断点,则代码隐藏不会获得事件调用。请发布更多代码,例如,如何从一开始调用该函数?它回来后会发生什么?即使服务器端单击事件未触发,页面是否会发布,例如
page\u Init
事件是否触发?如果完全删除第4行(而不是在第3行暂停),它会发布吗?@jamietre-更多代码发布。去掉第4行不会影响结果
$("#<%=btnLoginSubmit.ClientID %>").trigger('click');