使用Jquery将RadRating值发送到服务器

使用Jquery将RadRating值发送到服务器,jquery,asp.net,telerik,Jquery,Asp.net,Telerik,我的网页上有一个Telerik RadRating控件 <telerik:RadRating ID="RadRating1" runat="server" AutoPostBack="false" Enabled="true" Precision="Exact" OnClientRating="Rating_ClientRating"> </telerik:RadRating> 现在我可以成功访问新值和旧值。现在我需要通过JQuery Ajax发布值,我的客户端函数变成

我的网页上有一个Telerik RadRating控件

<telerik:RadRating ID="RadRating1" runat="server" AutoPostBack="false" Enabled="true" Precision="Exact" OnClientRating="Rating_ClientRating">
</telerik:RadRating>
现在我可以成功访问新值和旧值。现在我需要通过JQuery Ajax发布值,我的客户端函数变成这样

function Rating_ClientRating(sender, args) {
        var newValue = args.get_newValue();
        var oldValue = sender.get_value();

        var postdata = new Object();
        postdata.newValue = newValue;
        postdata.oldValue = dealid;

        $.ajax(
                {
                    type: "POST",
                    url: "Posts.aspx/RatePost",
                    data: JSON.stringify(postdata),
                    contentType: "application/json",
                    dataType: "json",
                    async: "true",
                    cache: "false",
                    success: OnSuccess,
                    failure: function (response) {
                        alert("Failure: " + response.d);
                    },
                    error: function (response) {
                        alert("Error: " + response.d);
                    }
                });
    }
现在,只要我将$.ajax添加到函数中,RadRating就会停止工作。工具提示显示正确,并且在鼠标上方填充星星,但我单击任何星星,则它未被选中。我做错什么了吗

  • 如果没有对jQuery的显式引用,$变量将抛出空引用

  • dealid变量未定义,将引发错误

  • 以下是为我生成请求的示例:

                function Rating_ClientRating(sender, args) {
                var newValue = args.get_newValue();
                var oldValue = sender.get_value();
    
                var postdata = new Object();
                postdata.newValue = newValue;
                postdata.oldValue = oldValue;
    
                $telerik.$.ajax(
                        {
                            type: "POST",
                            url: "Posts.aspx/RatePost",
                            data: JSON.stringify(postdata),
                            contentType: "application/json",
                            dataType: "json",
                            async: "true",
                            cache: "false",
                            success: OnSuccess,
                            failure: function (response) {
                                alert("Failure: " + response.d);
                            },
                            error: function (response) {
                                alert("Error: " + response.d);
                            }
                        });
                }
    
                function OnSuccess() {
    
                }
    

    谢谢你的帮助。它仍然不起作用。我在同一个页面上有另一个Javascript函数,它也成功地调用了服务器端函数。我已将该函数放在document.ready中。但当我在document.ready中放入相同的方法时,我的RadRating控件被禁用。如果我把它放在document.ready之外,那么除了ajax调用不起作用之外,一切都正常。您有任何脚本错误吗?你检查过你的控制台了吗?是否在此页面上成功返回所有请求?如果我们不能重现你的问题,我们就不能给你一个解决方案。
                function Rating_ClientRating(sender, args) {
                var newValue = args.get_newValue();
                var oldValue = sender.get_value();
    
                var postdata = new Object();
                postdata.newValue = newValue;
                postdata.oldValue = oldValue;
    
                $telerik.$.ajax(
                        {
                            type: "POST",
                            url: "Posts.aspx/RatePost",
                            data: JSON.stringify(postdata),
                            contentType: "application/json",
                            dataType: "json",
                            async: "true",
                            cache: "false",
                            success: OnSuccess,
                            failure: function (response) {
                                alert("Failure: " + response.d);
                            },
                            error: function (response) {
                                alert("Error: " + response.d);
                            }
                        });
                }
    
                function OnSuccess() {
    
                }