2016-03-29 9 views
-1

姓と名が揃っています。姓がぼかしの場合は、他のテキストボックスを入力するための追加データを取得するためのajax呼び出しがトリガーされます。呼び出しが行われ、Chromeの開発ツール(ネットワークタブ)にjson文字列がすべてのデータとともに戻ってきていることがわかりますが、テキストフィールドにデータを入力する方法を理解できません。テキストボックスにサーバーへのajax呼び出しを設定する

AJAX機能:

$(function() { 
     $("#LastName").on('blur', function() { 
      var first = $("#FirstName").val(); 
      var last = $("#LastName").val(); 
      $.ajax({ 
       url: '@Url.Action("SearchEmployee", "Employee")', 
       type: "GET", 
       datatype: 'json', 
       data: { 'firstName': first, 'lastName': last }, 
       success: function (data) { 
        alert(data.ManagerFirst); 
        $("#ManagerFirst").val(data.ManagerFirst); 
        $("#ManagerLast").val(data.ManagerLast); 
       }, 
       error: function() { alert("Huh? What? What did you need?.") } 
      }); 
     }) 
    }) 

返します。このような何か:

{"EmployeeId":0,"FirstName":"Bob","LastName":"Smith","EmailAddress":null,"ManagerEmail":"[email protected]","ManagerId":null,"ManagerFirst":"Boss","ManagerLast":"Man"} 

'警告' は "未定義" を示しています。

答えて

0

alert応答文字列のデータメンバーが存在しません。代わりに、あなたはこのように、objectに文字列を変換しようとする必要があります:

$(function() { 
    $("#LastName").on('blur', function() { 
     var first = $("#FirstName").val(); 
     var last = $("#LastName").val(); 
     $.ajax({ 
      url: '@Url.Action("SearchEmployee", "Employee")', 
      type: "GET", 
      datatype: 'json', 
      data: { 'firstName': first, 'lastName': last }, 
      success: function (data) { 
       //converting it to object, since further rows expect this 
       data = $.parseJSON(data); 
       alert(data.ManagerFirst); 
       $("#ManagerFirst").val(data.ManagerFirst); 
       $("#ManagerLast").val(data.ManagerLast); 
      }, 
      error: function() { alert("Huh? What? What did you need?.") } 
     }); 
    }) 
}) 

EDIT:ブライアン・ルイスが指摘したように

が、それはタイプミスでした。これは、私が自分の答えを書いた行動につながった。

+1

私は、データ型が "json"に設定されていて、parseJSONを明示的に実行する必要はないと判断しました。編集:実際には、データ型の "T"は大文字になっています。多分それが問題でしたか? –

+0

私はタイプミスを修正し、構文解析を追加しました。違いはありません。 parseJson行を追加すると、「予期しないトークンo」というエラーが発生します。私はとにかくそれを解析する必要はありません、応答ヘッダーは既に 'Content-Type:application/json' – BattlFrog

0

あなたはたぶんタイプミスがあるかもしれません。

data[0].ManagerFirst ... etc. 

からのことを指示する方法はありませんでした:「データ型」

+0

は違いがありませんでした。 – BattlFrog

0

はそれが好きにアクセスしなければならなかった、問題は、サーバーが従業員オブジェクトの配列を返すあったが判明し、「データ型」を変更してみてください私が投稿したデータ、私の謝罪。

fyi、一度修正を加えてしまえば、dataTypeパラメータを 'datatype'に戻しても問題なく動作しました。

関連する問題