2009-10-27 10 views
4

j'ai la fonction suivante pour ajouter un article dans mon panier:jquery ajax ne fonctionne pas dans IE

$(".addtocart").click(function(){ 

    var product = $("#pid").val(); 
    var qty = $("#qty").val(); 
    if(isNaN(qty) || qty == '') alert("ERROR"); 
    else{          
     alert("HIHI"); 

     $.ajax({ 
      type:"post", 
      url:"index.php", 
      data:"page=ajax&action=add_product&product=" + product + "&qty=" + qty, 
      success: function(html){ 
       alert("AAA"); 
       /* 
       $("#maininf").html($("#thumbimg").html()); 
       $("#tinfo").html(html); 
       var leftPoint = (Fensterweite()-$(".readybuy").width())/2; 
       $(".readybuy").css("left",leftPoint); 
       $(".glassbox").fadeIn(); 
       $(".readybuy").fadeIn(); 
       */ 
      }, 
     }); 
    } 

la première alerte est Alling chaque fois que dans IE. l'étape beforeSend fonctionne également. Mais la deuxième alerte ne vient jamais. Quelqu'un at-il une idée de pourquoi cela ne fonctionne pas sur IE?

Merci.

Répondre

13
  $(".readybuy").fadeIn(); 
      */ 
     }, < - Extra comma will break IE 
    }); 
} 
3

Vous devez retirer votre virgule finale pour commencer:

$.ajax({ 
      ... 
     } // No comma here 
    }); 
5

http://jslint.com/ est un excellent outil pour vous assurer que votre Javascript est bon. Les erreurs d'analyseur sont communes, j'ai souvent aussi eu un cas où Firefox fonctionne bien mais Safari vomit sur le même script à cause des virgules manquantes/supplémentaires.

1

vous pouvez également ajouter une partie d'erreur à votre appel ajax au cas où il des erreurs parce que sinon vous ne saurez pas

1

Merci beaucoup, mais ce fut une autre erreur.
La page php demande a besoin de la ligne suivante:

header("Content-Type: text/html; charset=utf-8"); 

Et maintenant tout fonctionne très bien.

+1

N'est-ce pas cool? Heures à chercher ailleurs = 5 min ici. :) –