AJAX运行
异步地
。所以这里发生了两件事:
-
事件在回调处理程序被调用之前(在AJAX调用发出响应之前)就已经传播了。
-
回调处理程序未附加到
SaveLocAddress
当它们被调用时
return
声明没有任何作用。
这可能需要一点重新设计。也许有两个按钮?其中之一就是
asp:Button
但是被设计为不可见。另一个是正常的
button
它具有您希望按钮具有的文本/样式。事件的顺序为:
-
用户单击HTML按钮
-
JavaScript按钮处理程序调用AJAX调用
-
根据AJAX响应,它会触发
click
隐藏按钮上的事件。
这是一种变通的做事方式,但这就是适合你的WebForms。可能是这样的:
<asp:Button ID="btnAddNewAddr" runat="server" onclick="btnAddNewAddr_Click" class="btn btn-primary invisible" UseSubmitBehavior="false" />
<input type="button" class="btn btn-primary" value="Save Address" onclick="SaveLocAddress();" />
然后,在您想要调用post-back功能的JavaScript代码中,您可以执行以下操作:
$('#<%= btnAddNewAddr.ClientID %>').trigger('click');
这将触发
点击
上的事件
asp:button
就好像用户点击了它一样。