2010-10-10 5 views
0

Voici une partie de mon code:erreur d'exécution Javascript IF

$.post("checkbuddy.php",function(data){ 
    if(data!="a"){ 
    $("#Layer15").css({ visibility: 'visible'}); 
    $("#Layer10").css({ visibility: 'visible'}); 
    $("#Layer10").html(data); 
    } 
}); 

La condition if(data!="a") ne semble pas fonctionner, comme checkbuddy.php retourne "a". Et ce qui se passe est que le HTML de Layer10 change en "a", et ainsi le texte montré est "a". Cela ne devrait pas se produire devrait-il?

+2

Que disent 'alert (data)' et 'alert (typeof data)'? – BalusC

+0

Je suppose que 'data ==" a \ n "'. – livibetter

+0

alerte (données) dit a. – Anant

Répondre

0

Espace supplémentaire après la fermeture ?> ou avant le <?php?

+0

ouais, il y avait.Il a résolu le problème! Merci! – Anant

1

Les espaces blancs pourraient bien être le problème. Utilisez la fonction de jQuery .trim():

$.post("checkbuddy.php",function(data){ 
    if($.trim(data) !="a"){ 
     $("#Layer15").show(); 
     $("#Layer10").show(); 
     $("#Layer10").html(data); 
    } 
}); 
0

Vérifiez les espaces blancs, comme on dit dans les autres réponses, mais il peut aussi être le type MIME. Si checkbuddy.php ne retourne pas un type MIME text/html ou text/plain et est text/xml, jQuery pourrait le convertir en un objet quelconque, ce qui gâcherait la comparaison.