0

こんにちは、私はこの記事を読んでいます: asp.net jquery ajax json: Simple example of exchange 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); 

私がやりたいのは、にテキストを入力するtextbox1textbox2、同じ値で埋められるはずです。

4

1 に答える 1

0

Ajax コードを入れると正常に$(document).ready動作していることがわかりますが、.clickイベントに入れるとエラーが発生します。ボタンのデフォルトの動作のためです。

この問題を解決するには、クリック時のボタンのデフォルトの動作を防止する必要があるため、関数にeパラメーターを追加し、 ..clicke.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); }
    });
});
于 2014-08-24T13:28:53.543 に答える