Code jvs qui fonctionne sous IE 6 et 7 mais pas 8 et Google Chrome

Code jvs qui fonctionne sous IE 6 et 7 mais pas 8 et Google Chrome - HTML/CSS - Programmation

Marsh Posté le 19-08-2009 à 23:02:12    

Bonjour à tous,
 
J'ai un formulaire avec une liste que je remplis ou vide grace à 2 boutons "Ajouter" et "Supprimer":
 

Code :
  1. <script type="text/javascript">
  2.  function ajoutarticle()
  3.  { 
  4.   var opt = document.createElement("OPTION" )
  5.   opt.text = document.getElementById('ListeArticleID').value
  6.          document.getElementById('panierID').add(opt)
  7.   CalculTotal()
  8.  }
  9.  function Supprimer(list) {
  10.    if (list.options.selectedIndex>=0) {
  11.     list.options[list.options.selectedIndex]=null;
  12.    } else {
  13.     alert("Suppression impossible : aucun article sélectionné" );
  14.    }
  15.    CalculTotal()
  16.  }
  17.  function CalculTotal() {
  18.    if (document.getElementById('LivraisonID').value==1){
  19.     document.getElementById('totalID').value = parseInt(document.getElementById('panierID').length) *16 + 2.90
  20.    }else{
  21.     document.getElementById('totalID').value = parseInt(document.getElementById('panierID').length) *16    
  22.    }
  23.  }
  24.  </script>


 
Bouton Ajouter:

Code :
  1. <label>
  2.           <input type="button" name="btn_ajouter" id="btn_ajouter" value="Ajouter au panier" onclick="ajoutarticle()" />
  3.         </label>


 
Bouton supprimer un item:

Code :
  1. <label>
  2.           <input type="button" name="btnsuppr" id="btnsuppr" value="Supprimer cet article" onclick="Supprimer(this.form.panierID)" />
  3.         </label>


 
Ca fonctionne nikel sur IE 6 et 7,mais pas sur la 8,ni sur Google Chrome. [:matleflou]  
 
Quelqu'un peut me dire ce qu'il faut faire pour que ca tourne  [:delarue3]
 
Petite question au passage,c'est possible de mettre la valeur de ma textebox "Total" comme value la dedans? :

Code :
  1. <input type="hidden" name="amount" value="Ma textbox Total"  >


Message édité par 4lkaline le 19-08-2009 à 23:06:07

---------------
"Qu'est-ce que je vais devenir ? Je suis ministre, je ne sais rien faire !" Saluste (la Folie des Grandeurs)
Reply

Marsh Posté le 19-08-2009 à 23:02:12   

Reply

Marsh Posté le 19-08-2009 à 23:22:53    

Je dirais que ton erreur vient de là :

Code :
  1. <input type="button" name="btnsuppr" id="btnsuppr" value="Supprimer cet article"
  2.       onclick="Supprimer(this.form.panierID)" />


J'aurais plutôt mis :

Code :
  1. <input type="button" name="btnsuppr" id="btnsuppr" value="Supprimer cet article"  
  2.       onclick="Supprimer(document.getElementById('panierID'))" />


Sinon quelques remarques :

  • input dans un label, pas sûr que ça serve à quelque chose.
  • la propriété .length est déjà un entier, pas besoin de faire un parseInt() dessus.

Reply

Marsh Posté le 19-08-2009 à 23:29:44    

Merci de ton aide,je vais tester ca.
J'ai oublié de préciser le "ca ne marche pas",en fait c'est le bouton Ajouter qui ne fonctionne pas,quand je clique dessus rien ne se passe.(De ce fait je ne peux pas tester "Supprimer" )


Message édité par 4lkaline le 19-08-2009 à 23:38:56

---------------
"Qu'est-ce que je vais devenir ? Je suis ministre, je ne sais rien faire !" Saluste (la Folie des Grandeurs)
Reply

Marsh Posté le 20-08-2009 à 15:27:23    

Ah ouais, effectivement. À tout hasard, si tu as un doctype XHTML, il faut que les noms des éléments soient en minuscule (en HTML tu peux mixer la casse). Donc je ferais un truc du genre :
 

Code :
  1. var opt = document.createElement("option" )


Message édité par tpierron le 20-08-2009 à 15:28:33
Reply

Marsh Posté le 21-08-2009 à 12:08:34    

Bon j'ai tenté de creuser le pourquoi du comment.
 
Lorsque je clique sur le bouton Ajouter,rien ne se passe comme indiqué avant,et un petit panneau warning jaune apparait en bas dans le coin gauche d'IE8,en cliquant dessus j'ai le détail de l'erreur:

Citation :

Détails de l’erreur de la page Web
Message : Objet requis
Ligne : 18
Caractère : 4
Code : 0


 
En allant à la ligne 18 de ma page,j'ai trouvé que c'est la ligne ci dessous qui plante:

Citation :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    "http://www.w3.org/TR/html4/loose.dtd">


 
Si je la vire ca fonctionne  [:cerveau shay]  ,mais la page est dégeu [:matleflou]  
 Je suis un peu paumé la...
 


Message édité par 4lkaline le 22-08-2009 à 00:33:26

---------------
"Qu'est-ce que je vais devenir ? Je suis ministre, je ne sais rien faire !" Saluste (la Folie des Grandeurs)
Reply

Marsh Posté le 21-08-2009 à 15:12:36    

Oué vu la gestion merdicimale des erreurs sous IE, je te conseille d'utiliser soit un débugguer javascript ou un autre navigateur, et si ce n'est pas trop long, poste le code entier de la page.

Reply

Marsh Posté le 24-08-2009 à 11:33:08    

Alors voici le kit graphique que j'ai utilisé (telechargeable sur le site):
http://www.kits-gratuits.net/site/preview.php?id=54
 
Si vous l'ouvrez avec les nouveaux navigateurs,le menu du haut "Acceuil Portfolio Contact" va être completement décallé vers la haut,si vous l'ouvrez avec IE 6 ou 7,pas de soucis il sera à la bonne place.
Et ce bug fait également planter mon code Jvs.
 
Si je vire le <!DOCTYPE ,l'affichage est nikel et le code fonctionne,mais ca décalle tous le kit vers la gauche :/


Message édité par 4lkaline le 24-08-2009 à 11:33:42

---------------
"Qu'est-ce que je vais devenir ? Je suis ministre, je ne sais rien faire !" Saluste (la Folie des Grandeurs)
Reply

Marsh Posté le 24-08-2009 à 15:20:22    

Hmm, cet exemple utilise des frames, est-ce aussi le cas de ton site ? Si c'est le cas ton doctype n'est pas bon.
 
Tout ça pour un bandeau en plus, ça me parait overkill. T'as pas un lien vers le site ou un exemple de code qui foire ?

Reply

Marsh Posté le 24-08-2009 à 17:23:53    

Et bien c'est trés simple,j'ai pris le kit graphique tel quel que tu peux downloader ici:
http://www.kits-gratuits.net/kits/kit-41/archive.zip
 
Et remplace juste le code du fichier index par celui ci:

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  3.    <head>
  4.         <title>MonSite.Com | ::</title>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6.         <meta http-equiv="Content-Language" content="fr" />
  7.            <meta http-equiv="Content-Script-Type" content="text/javascript" />
  8.            <meta http-equiv="Content-Style-Type" content="text/css" />
  9.         <meta name="DC.Language" scheme="RFC3066" content="fr" />
  10.         <link rel="stylesheet" href="style.css" type="text/css" media="screen" title="Normal" />
  11.        
  12.         <script type="text/javascript">
  13.   function ajoutarticle()
  14.   {
  15.    var opt = document.createElement("OPTION" )
  16.    opt.text = document.getElementById('ListeArticleID').value
  17.           document.getElementById('panierID').add(opt)
  18.    CalculTotal()
  19.   }
  20.   function Supprimer(list) {
  21.     if (list.options.selectedIndex>=0) {
  22.      list.options[list.options.selectedIndex]=null;
  23.     } else {
  24.      alert("Suppression impossible : aucun article sélectionné" );
  25.     }
  26.     CalculTotal()
  27.   }
  28.   function CalculTotal() {
  29.     if (document.getElementById('LivraisonID').value==1){
  30.      document.getElementById('totalID').value = parseInt(document.getElementById('panierID').length) *16 + 2.90
  31.     }else{
  32.      document.getElementById('totalID').value = parseInt(document.getElementById('panierID').length) *16   
  33.     }
  34.   }
  35.   </script>
  36.    </head>
  37. <body>
  38. <div id="page">
  39. <a href="index.htm"><img src="./images/interface/titre.png" alt="Logo" id="logo" /></a>
  40. <ul id="menu">
  41. <li><a href="">Accueil</a></li>
  42. <li><a href="">Portfolio</a></li>
  43. <li><a href="">Contact</a></li>
  44. <li><a href="">Services</a></li>
  45. <li><a href="">Forums</a></li>
  46. </ul>
  47. <h1>VotreSite.Com</h1>
  48. <div id="contenu">
  49. <div id="bloc">
  50. <h2>Créez votre commande:</h2>
  51.       <p>&nbsp;</p>
  52.       <form id="form1" method="post" action="">
  53.         <p>
  54.           <label>Articles:
  55.             <select name="ListeArticleID">
  56.               <option value="1">Ref:1 Objet1</option>
  57.               <option value="2">Ref:2 Objet2</option>
  58.               <option value="3">Ref:3 Objet3</option>
  59.             </select>
  60.           </label>
  61.         &nbsp;&nbsp;&nbsp;
  62.         <label>
  63.           <input type="button" name="btn_ajouter" id="btn_ajouter" value="Ajouter au panier" onclick="ajoutarticle()" />
  64.         </label>
  65.         </p>
  66.         <p>&nbsp;</p>
  67.         <p>Votre panier:</p>
  68.         <p>
  69.           <label>
  70.             <select style="width: 220px" name="panierID" size="5" id="panierID">
  71.             </select>
  72.           </label>
  73.         &nbsp;&nbsp;&nbsp;
  74.         <label>
  75.           <input type="button" name="btnsuppr" id="btnsuppr" value="Supprimer cet article" onclick="Supprimer(document.getElementById('panierID'))"  />
  76.         </label>
  77.         </p>
  78.         <p>&nbsp;</p>
  79.         <p>
  80.           <label>
  81.             <select name="LivraisonID" id="LivraisonID"  onchange="CalculTotal()">
  82.               <option value="1">Livraison à domicile (2,90)</option>
  83.               <option value="2">Remise en main propre sur Paris</option>
  84.             </select>
  85.           </label>
  86.         </p>
  87.         <p>&nbsp;</p>
  88.         <p><strong>Total:</strong>
  89.           <label>
  90.             <input name="totalID" type="text" id="totalID" size="6" />
  91.           </label>
  92.         </p>
  93.         <p>&nbsp;</p>
  94.         <p>&nbsp;</p>
  95.         <p>&nbsp;</p>
  96.       </form>
  97. <p class="commentaires"><a href=""><em>6</em> commentaires</a></p>
  98.   </div>
  99. <div id="menu_gauche">
  100. <h2>Menu premier</h2>
  101.  <ul>
  102.   <li><a href="">Un menu</a></li>
  103.   <li><a href="">Horizontal</a></li>
  104.   <li><a href="">Comme &ccedil;a</a></li>
  105.   <li><a href="">C'est</a></li>
  106.   <li><a href="">Vraiment</a></li>
  107.   <li><a href="">Pas mal !</a></li>
  108.  </ul>
  109. <h2>Menu second</h2>
  110.  <ul>
  111.   <li><a href="">Un menu</a></li>
  112.   <li><a href="">Horizontal</a></li>
  113.   <li><a href="">Comme &ccedil;a</a></li>
  114.   <li><a href="">C'est</a></li>
  115.   <li><a href="">Vraiment</a></li>
  116.   <li><a href="">Pas mal !</a></li>
  117.  </ul>
  118. </div>
  119. </div>
  120. </div>
  121. </body>
  122. </html>


Je viens de tester,sous IE 7 ca tourne nikel,sous IE8 ou Firefox non....Tu cliques sur ajouter ca ne fait rien...


---------------
"Qu'est-ce que je vais devenir ? Je suis ministre, je ne sais rien faire !" Saluste (la Folie des Grandeurs)
Reply

Marsh Posté le 24-08-2009 à 17:47:14    

ca marche sur ie parce qu'ie accepte n'importe quoi comme code... ton pb n'a rien à voir avec ton kit, mais avec ton code JS...  je te conseille firefox+ extension firebug pour debugger tout ca...

 

ca te permettra de voir:

 
  • qu'il te manque des ";" à la fin de certaines lignes de JS
  • que tu utilise getElementById pour récupérer un objet alors qu'il n'a pas d'id mais un name
  • que la méthode add() sous firefox nécessite 2 arguments (http://www.w3schools.com/htmldom/met_select_add.asp):
 

ce qui donne ca qui marche très bien chez moi sous FF.

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  3.    <head>
  4.         <title>MonSite.Com | ::</title>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6.         <meta http-equiv="Content-Language" content="fr" />
  7.            <meta http-equiv="Content-Script-Type" content="text/javascript" />
  8.            <meta http-equiv="Content-Style-Type" content="text/css" />
  9.         <meta name="DC.Language" scheme="RFC3066" content="fr" />
  10.         <link rel="stylesheet" href="style.css" type="text/css" media="screen" title="Normal" />
  11.      
  12.         <script type="text/javascript">
  13.   function ajoutarticle()
  14.   {
  15.     var opt = document.createElement("option" );
  16.     opt.text = document.getElementById('ListeArticleID').value;
  17.     try
  18.     {
  19.       document.getElementById('panierID').add(opt, null);
  20.     }
  21.     catch(ex)
  22.     {
  23.       document.getElementById('panierID').add(opt);
  24.     }
  25.    
  26.    CalculTotal()
  27.   }
  28.   function Supprimer(list) {
  29.     if (list.options.selectedIndex>=0) {
  30.      list.options[list.options.selectedIndex]=null;
  31.     } else {
  32.      alert("Suppression impossible : aucun article sélectionné" );
  33.     }
  34.     CalculTotal()
  35.   }
  36.   function CalculTotal() {
  37.     if (document.getElementById('LivraisonID').value==1){
  38.      document.getElementById('totalID').value = parseInt(document.getElementById('panierID').length) *16 + 2.90;
  39.     }else{
  40.      document.getElementById('totalID').value = parseInt(document.getElementById('panierID').length) *16   ;
  41.     }
  42.   }
  43.   </script>
  44.    </head>
  45. <body>
  46. <div id="page">
  47. <a href="index.htm"><img src="./images/interface/titre.png" alt="Logo" id="logo" /></a>
  48. <ul id="menu">
  49. <li><a href="">Accueil</a></li>
  50. <li><a href="">Portfolio</a></li>
  51. <li><a href="">Contact</a></li>
  52. <li><a href="">Services</a></li>
  53. <li><a href="">Forums</a></li>
  54. </ul>
  55. <h1>VotreSite.Com</h1>
  56. <div id="contenu">
  57. <div id="bloc">
  58. <h2>Créez votre commande:</h2>
  59.       <p>&nbsp;</p>
  60.       <form id="form1" method="post" action="">
  61.         <p>
  62.           <label>Articles:
  63.             <select name="ListeArticleID" id="ListeArticleID">
  64.               <option value="1">Ref:1 Objet1</option>
  65.               <option value="2">Ref:2 Objet2</option>
  66.               <option value="3">Ref:3 Objet3</option>
  67.             </select>
  68.           </label>
  69.         &nbsp;&nbsp;&nbsp;
  70.         <label>
  71.           <input type="button" name="btn_ajouter" id="btn_ajouter" value="Ajouter au panier" onclick="ajoutarticle()" />
  72.         </label>
  73.         </p>
  74.         <p>&nbsp;</p>
  75.         <p>Votre panier:</p>
  76.         <p>
  77.           <label>
  78.             <select style="width: 220px" name="panierID" size="5" id="panierID">
  79.             </select>
  80.           </label>
  81.         &nbsp;&nbsp;&nbsp;
  82.         <label>
  83.           <input type="button" name="btnsuppr" id="btnsuppr" value="Supprimer cet article" onclick="Supprimer(document.getElementById('panierID'))"  />
  84.         </label>
  85.         </p>
  86.         <p>&nbsp;</p>
  87.         <p>
  88.           <label>
  89.             <select name="LivraisonID" id="LivraisonID"  onchange="CalculTotal()">
  90.               <option value="1">Livraison à domicile (2,90)</option>
  91.               <option value="2">Remise en main propre sur Paris</option>
  92.             </select>
  93.           </label>
  94.         </p>
  95.         <p>&nbsp;</p>
  96.         <p><strong>Total:</strong>
  97.           <label>
  98.             <input name="totalID" type="text" id="totalID" size="6" />
  99.           </label>
  100.         </p>
  101.         <p>&nbsp;</p>
  102.         <p>&nbsp;</p>
  103.         <p>&nbsp;</p>
  104.       </form>
  105. <p class="commentaires"><a href=""><em>6</em> commentaires</a></p>
  106.   </div>
  107. <div id="menu_gauche">
  108. <h2>Menu premier</h2>
  109. <ul>
  110.   <li><a href="">Un menu</a></li>
  111.   <li><a href="">Horizontal</a></li>
  112.   <li><a href="">Comme &ccedil;a</a></li>
  113.   <li><a href="">C'est</a></li>
  114.   <li><a href="">Vraiment</a></li>
  115.   <li><a href="">Pas mal !</a></li>
  116. </ul>
  117. <h2>Menu second</h2>
  118. <ul>
  119.   <li><a href="">Un menu</a></li>
  120.   <li><a href="">Horizontal</a></li>
  121.   <li><a href="">Comme &ccedil;a</a></li>
  122.   <li><a href="">C'est</a></li>
  123.   <li><a href="">Vraiment</a></li>
  124.   <li><a href="">Pas mal !</a></li>
  125. </ul>
  126. </div>
  127. </div>
  128. </div>
  129. </body>
  130. </html>


Message édité par pataluc le 24-08-2009 à 17:48:44
Reply

Marsh Posté le 24-08-2009 à 17:47:14   

Reply

Marsh Posté le 24-08-2009 à 20:40:55    

Citation :

qu'il te manque des ";" à la fin de certaines lignes de JS


Je n'en mettais jamais  [:matleflou]  

Citation :

que tu utilise getElementById pour récupérer un objet alors qu'il n'a pas d'id mais un name


Corrigé et ca fonctionne  [:cerveau shay]  
 
Et effectivement faut que je telecharge un outils pour compiler mon code  [:cerveau spamafote]  
 
Par contre,pour le menu en haut,je sais pas ce que ca donne sous FF,mais sous IE8,ca me le décale completement en haut,une idée du pourquoi?
 
Sinon j'avais une question également dans mon premier post:

Code :
  1. <input type="hidden" name="amount" value="Ma textbox totalID"  >


C'est quoi la syntaxe ici pour mettre la valeur de la textbox "totalID"  :??:  
 
En tous cas merci beaucoup pour votre aide!


Message édité par 4lkaline le 24-08-2009 à 20:41:22

---------------
"Qu'est-ce que je vais devenir ? Je suis ministre, je ne sais rien faire !" Saluste (la Folie des Grandeurs)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed