2012-11-23 18 views
0

您好我一直在經歷的這篇文章: asp.net jquery ajax json: Simple example of exchanging dataasp.net傳遞paramets到通用處理器throgh jQuery的AJAX

我也使用相同的代碼的問題,是我能值傳遞給我的處理程序,當我看使用斷點一切都在處理值的工作正常,但我沒有收到由handler返回值 我的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應該得到填充相同的值。

+0

你確定你的文本框的ID是'textbox1'和'textbox2'?請檢查或發佈相關的HTML。 –

+0

文本框命名不是我發佈前更改了文本框名稱的問題 – user1426009

回答

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); } 
    }); 
}); 
相關問題