2012-01-26 8 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 \ "、\"エラー\ ":false、\" msg \ ":\" VARIOUS、Brisbane \ "}データ ":{" notifications ":[]}}が返されます。結果 –

+0

data.msgはその結果に存在しません。変数にdata.msgを設定し、console.logを実行するだけです。これは未定義です。 @ShankarSangoliによって指摘されているように、定義されていない値をtext()に渡すと、エラーが発生します。 – Archer

関連する問題