ASP.net OnClientClick有一个异步调用 - 只有当异步调用完成并成功时,如何继续服务器端OnClick?

时间:2016-08-10 15:20:34

标签: javascript jquery asp.net

我有

<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,这部分回答了我的问题。当呼叫完成时,它可能是成功的也可能是错误的。只有在呼叫成功时,才能继续进行服务器端点击。如何从$.get()的处理程序中“返回true或false”?

1 个答案:

答案 0 :(得分:3)

您可以随时在JS函数中返回ClassCastException,以确保它不会在点击后回发。

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

false