2017-10-12 19 views
1

我試圖通過使用ajax檢索數據併成功顯示數據,但當數據不存在時出現問題我想嘗試更改其值,但它沒有通過我的腳本錯誤?並且其錯誤消息是如果使用ajax的對象爲NULL,則無法讀取屬性'id'null

Uncaught TypeError: Cannot read property 'id' of null //this error 

    $('[name="changeID"]').change(function() { 
     var url = base_url+'tools/get_id'; 
     var idTools = $('[name="number_tools"]').val(); 

     $.ajax({ 
      url : url, 
      type: 'POST', 
      dataType: "JSON", 
      data: { id : idTools}, 
        success: function(data) { 
         var result = data.id; 
         var getNewID = parseInt(result.substr(result.length -3)) + 1; 

         if (!data) { 
          $('[name="id"]').val("000"); //error here        
         }else{ 
          $('[name="id"]').val(getNewID);        
         } 
         console.log(result); 
        }, 
        error: function (request, jqXHR, textStatus, errorThrown) { 
         console.log(request.responseText); 
        } 
     }); 
    }); 
+0

參數'data'是'null'。您打算通過您的網址提供的價值是什麼? –

+0

@SpencerWieczorekso如果數據有數據,將出現ID_A,但是如果數據不存在或未找到,它將顯示ID_B –

+0

您可以添加一個條件,如'if(data!= null){/ *數據已返回* /}其他{/ *沒有數據返回* /}'。 –

回答

1

更改您的Ajax響應以下格式,

if(!data) 
{ 
    $('[name="id"]').val("000"); 
} 
else 
{ 
    var result = data.id;.     
    var getNewID = parseInt(result.substr(result.length -3)) + 1; 
    $('[name="id"]').val(getNewID); 
} 
+0

這是真的......謝謝 –

0

您在使用data對象之前檢查null。如果data爲空,那麼顯然你會得到Uncaught TypeError: Cannot read property 'id' of null的錯誤。您必須使用if (!data) { }條件中的數據。

+0

那麼解決方案如何 –

+0

如果來自ajax調用的「data」爲null,您需要做些什麼?如果來自ajax調用的'data'不是null? –