asp.net将参数传递给通用处理程序throgh jquery ajax

时间:2012-11-23 09:23:12

标签: asp.net

您好,我一直在阅读这篇文章: asp.net jquery ajax json: Simple example of exchanging data

我也使用相同的代码问题,我能够将值传递给我的处理程序,当我在处理程序中使用断点查看值时一切正常但我没有得到处理程序返回的值 我的javascript代码是:

 <script type="text/javascript">
     jQuery("#<%=btnsubmit.ClientID %>").click(function () {

         var myData = { "hicode": $('#textbox1 ').val() };

         $.ajax({
             url: "HandlerHinditoEnglish.ashx",
             data: myData,

             type: 'POST',

             success: function (data) {

                 $("#textbox2").val(data);
             },
             error: function (data, status, jqXHR) { alert("FAILED:" + status); }
         });
     });

和处理程序代码是

        HttpResponse r = context.Response;
        r.ContentType = "text/plain";

        string Hinditext = string.Empty;
        string Englishtext = string.Empty;
        string myPar = context.Request.Form["hicode"]; 
        Hinditext = myPar;
        Englishtext = hcnvrt.ToEnglish(Hinditext).ToString();

        context.Response.Write(Englishtext); 

我想要做的是,如果我在textbox1中输入一些文字,textbox2应填充相同的值。

1 个答案:

答案 0 :(得分:0)

如果您将Ajax代码放在$(document).ready中,您可以看到它正常工作,但是当您将其置于.click事件中时会导致错误。这是因为按钮的默认行为。

要解决此问题,您需要在点击时阻止按钮的默认行为,以便将e参数添加到.click功能,并添加e.preventDefault(e);

您的最终代码必须如下所示:

jQuery("#<%=btnsubmit.ClientID %>").click(function (e) {
    e.preventDefault(e);
    var myData = { "hicode": $('#<%=textbox1.ClientID %>').val() };
    $.ajax({
        url: "HandlerHinditoEnglish.ashx",
        data: myData,
        type: 'POST',
        success: function (data) {
            $("#<%=textbox2.ClientID %>").val(data);
        },
        error: function (data, status, jqXHR) { alert("FAILED:" + status); }
    });
});