我有

<asp:Button ID="Submit_BT" runat="server" OnClientClick="return clientClick();" OnClick="Submit_BT_Click" />

然后在JS中:
function clientClick(){
     // using jQuery
     $.get(..., function(result){
         // Perform some processing on result
         // Proceed with the server-side postback
     },
     function(error){
         // Don't proceed with server-side postback
     });

     return true; // ?---
}

我希望$ .get在回发之前成功完成,但是我认为回发将永远不会发生,或者会一直发生。我可以简单地说return $.get(...)吗?这该怎么做?

This question与之类似,解决方案是设置async: false,部分回答了我的问题。 call 完成后,它可能是成功的或错误的。仅当 call 成功时,我才想继续进行服务器端单击。如何从$.get()的处理程序中“返回true或false”?

最佳答案

您始终可以在JS函数中返回false,以确保它不会在点击后回发。

并在成功的异步回调中进行手动回发:

$.get(..., function(result){

   // Perform some processing on result

   __doPostBack('Submit_BT', '')

}

关于javascript - ASP.net OnClientClick有一个异步调用-仅当该异步调用完成且成功时,如何继续进行服务器端OnClick?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38877523/

10-12 12:21
查看更多