2016-11-16 9 views
2

なぜajax.sucessのdata.lengthで定義されていませんか?ここでAjaxの成功:データ長が定義されていません

は、コードで、いくつかの部分は簡潔にするために削除されました:

$.ajax({ 
    data: JSON.stringify(data), 
    url: urlGetProviderQualificationTimeData, 
    type: 'POST', 
    contentType: "application/json; charset=utf-8", 
    success: function (data) { 
     if (data.length > 0) { 
      $("#loading").hide(); 
      $("#providerqualification-main").show(); 
      $("#tblProviders").show(); 
      SetHeaderFields(data); 
     } else { 
      $("#NoRecordFound").show(); 
      $("#providerqualification-main").hide(); 
     } 
    }, 
    complete: function (e) { 
     $("#loading").hide(); 
    } 
}); 

enter image description here

+0

チェックした場合のように(data.hasOwnProperty( '住所')){//ここにコード}の –

+0

が重複する可能性[オブジェクトの長さを取得する方法](のhttp:// stackoverflowの.com/questions/5533192/how-to-get-object-length) –

+0

応答データをコンソール化します。 配列または文字列の場合は、データの「長さ」が定義されます。 レスポンスがオブジェクトの場合、 'Object.keys(data).length'を使用してください – Harish

答えて

3

あなたdataオブジェクトがlength性質を持っている(とアレイとして1を持っていないのオブジェクトはありませんdo)ですので、undefinedです。

コードのコンテキストを指定すると、返されたオブジェクトにデータが含まれているかどうかを確認するだけです。もしそうなら、あなたはこれを使用することができます。

success: function (data) { 
    if (!data || !Object.keys(data).length) { 
     $("#NoRecordFound").show(); 
     $("#providerqualification-main").hide(); 
    } else { 
     $("#loading").hide(); 
     $("#providerqualification-main").show(); 
     $("#tblProviders").show(); 
     SetHeaderFields(data); 
    } 
}); 
+0

これは私の問題を解決しました!ありがとう –

+0

これは、プロパティのいずれかがnullの場合はtrueであることを意味しますか? –

+0

いいえ、オブジェクトが存在し、オブジェクトが少なくとも1つのプロパティを持っているかどうかを確認します。そのプロパティの値はnullでもかまいません。それでも有効な値は –

関連する問題