2009-11-11 6 views
1

J'ai un menu déroulant qui suit dans le:erreur IE avec la valeur déroulante parseInt (jquery val())

<select id="shipping" name="shipping_option"> 
<option SELECTED value="60">R60</option> 
<option value="90">R90</option>  
<option value="100">R100</option>       
</select> 

Ensuite, lorsque le contenu de la liste déroulante est modifié, javascript fonctionne updateTotal(), qui est le suivant:

function updateTotal() { 
      total = parseInt($("#shipping").val()); 
     } 

Maintenant cela fonctionne bien dans Firefox et Safari, mais pas dans IE. Ça ne marche tout simplement pas. Il dit que l'objet ne supporte pas la fonction.

Est-ce un bug dans IE, ou un bug dans jQuery relatif à IE? Comme je l'ai dit, cela fonctionne parfaitement, mais pas dans IE.

+0

Quelle version d'IE? – hminaya

+0

Il semble fonctionner dans IE6 et IE7. –

Répondre

2

Certains problèmes possibles - êtes-vous sûr que le <select> avec l'ID shipping a chargé et n'a pas été supprimé du DOM? Y at-il un autre élément avec l'ID shipping? Est-ce que la valeur est vraiment un nombre? En outre, la variable total, êtes-vous certain qu'il a été initialisé avec var pour le rendre accessible où vous l'utilisez?

Une note, c'est une bonne idée d'utiliser parseInt() avec le deuxième paramètre, donc parseInt(foo, 10); pour vous assurer qu'il est analysé comme un nombre décimal.

Essayez de vérifier votre code au jslint pour voir ce que d'autres erreurs peuvent causer des problèmes.

Questions connexes