2012-01-26 6 views
0

je besoin d'une deuxième paire d'yeux sur ce que ne peut pas voir pourquoi il est de retour:demande jQuery AJAX est pas une fonction

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

Mon code est le suivant:

$.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); 
     } 
    }); 

Répondre

0

Si data.msg est undefined alors $("#message")....html(data.msg) retournera une chaîne et l'appel d'une méthode show sur une chaîne vous donnera cette erreur.

Demo

+0

si je en commentaire $ ('# message') removeClass() addClass ((data.error === true) 'error': 'succès')... Texte (données .msg) .show (500); Je vois les résultats retournés par –

+0

{"text": "{\" id \ ": \" 2 \ ", \" error \ ": false, \" msg \ ": \" DIVERS, Brisbane \ "}", " data ": {" notifications ": []}} renvoie le résultat –

+0

data.msg n'existe pas dans cet exemple de résultat. Remplissez simplement une variable avec data.msg et faites un fichier console.log - vous verrez qu'il est indéfini. Passer une valeur indéfinie dans le texte() provoquera l'erreur, comme indiqué par @ShankarSangoli – Archer