2012-01-26 44 views
0

我還需要第二雙眼睛在本作不明白爲什麼它的返回:jQuery的AJAX請求不是一個功能

$("#message").removeClass().addClass(data.error === true ? "error" : "success").html(data.msg).show is not a function 

我的代碼如下:

$.ajax({ 
     type : 'POST', 
     url : 'postcode-lookup.php', 
     dataType : 'json', 
     data: { 
      postcode : $('#postcode').val() 
     }, 
     success : function(data){ 
      $('#waiting').hide(500); 
      $('#message').removeClass().addClass((data.error === true) ? 'error' : 'success').text(data.msg).show(500); 
      if (data.error === true) 
       $('#restricted_locator').show(500); 
     }, 
     error : function(XMLHttpRequest, textStatus, errorThrown) { 
      $('#waiting').hide(500); 
      $('#message').removeClass().addClass('error').text('There was an error.').show(500); 
      $('#restricted_locator').show(500); 
     } 
    }); 

回答

0

如果data.msgundefined那麼$("#message")....html(data.msg)將返回一個字符串,並在字符串上調用show方法會給你那個錯誤。

Demo

+0

如果我註釋掉$( '#消息'),removeClass()addClass((data.error ===真) '錯誤'? '成功')。文本(數據的.msg).show(500);我看到返回的結果 –

+0

{「text」:「{\」id \「:\」2 \「,\」error \「:false,\」msg \「:\」VARIOUS,Brisbane \「}」,數據「:{」notifications「:[]}}返回結果 –

+0

data.msg在該示例結果中不存在。只需用data.msg填充一個變量並執行一個console.log - 你會發現它是未定義的。將未定義的值傳遞給文本()會導致錯誤,正如@ShankarSangoli – Archer