javascript - 如何使用 jQuery ajax 请求触发事件处理程序背后的代码

标签 javascript jquery asp.net ajax

我有这个ajax面板:

<telerik:RadAjaxPanel ID="rap" runat="server">
    ...
    <-- Contains several Hidden fields -->
</telerik:RadAjaxPanel>

在我的代码后面,我有一个事件处理程序来处理面板上的所有 ajax 请求,具有以下签名:

Private Sub rap_AjaxRequest(sender As Object, e As Telerik.Web.UI.AjaxRequestEventArgs) Handles rap.AjaxRequest

我能够成功地从 Javascript 调用 ajax 请求,如下所示:

var panel = $find('<%=rap.ClientID%>');
panel.ajaxRequest();

调用 ajax 请求的方法需要隐藏字段之一的值,该值在后面的代码中设置。这样做不会将值正确地推送到客户端,因为它是异步的。我正在尝试使用 jQuery 同步触发请求,如下所示:

var panel = $find('<%=rap.ClientID%>');
$.ajax({
    async: false,
    context: panel
}).done(function() {
    // Handle the rest of the function if the ajax call succeeded
});

当我单步执行代码时,我发现 ajax 调用在我的 .done 函数运行时成功。但是,后面代码中处理请求的方法永远不会被触发。我怎样才能让这个调用正确触发我的代码正在处理的事件?

最佳答案

我创建了一个工作示例来演示我“认为”您正在尝试做的事情。试试这个。

JavaScript:

<script>
    function submitViaAjax() {
        var rap = $find('<%=rap.ClientID%>');

        rap.ajaxRequest();
    }

    function rap_onResponseEnd(sender, arg) {

        alert(document.getElementById('<%=hdnValue.ClientID%>').value);
    }
</script>

aspx

<telerik:RadAjaxPanel ID="rap" runat="server"
        ClientEvents-OnResponseEnd="rap_onResponseEnd">

    <asp:HiddenField ID="hdnValue" runat="server" />

    <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="return submitViaAjax();" />

</telerik:RadAjaxPanel>

后台代码:

Protected Sub rap_AjaxRequest(sender As Object, e As Telerik.Web.UI.AjaxRequestEventArgs) Handles rap.AjaxRequest
    hdnValue.Value = "123456"
End Sub

关于javascript - 如何使用 jQuery ajax 请求触发事件处理程序背后的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677714/

相关文章:

javascript - 使用 angular-ui-bootstrap 进行弹出

javascript - jQuery.find() IE7 错误?

javascript - jquery窗口调整大小时出现错误

jquery - 根据一天中的时间更改背景图像

javascript - 哪个jquery版本存在outerHTML方法

sql - 列 'ID' 被限制为唯一。值(value)已经存在

c# - 我应该为拼音使用什么文化代码?

javascript - 无法读取未定义的属性 'querySelectorAll'

php - php 中的 Javascript 数组格式错误

jquery - 如何突出显示 Web 表单中的选定选项卡,包括母版页