Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1297 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Compatibilité onclick firefox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compatibilité onclick firefox

n°1893920
coldvibe
Posté le 11-06-2009 à 00:48:06  profilanswer
 

Bonjour à tous,
 
voilà mon problème :  
 
Je voudrais  créer une simulation de système de caddie pour un site réalisé dans le cadre scolaire.
J'ai donc trouvé un code tout simple et qui répond exactement a ma demande.
 
<script type="text/javascript">  
 
<!-- function calculette ()  
 
{   var total=0;    
 
if (caddie.achat1.checked)     total += 100;  
 
 if (caddie.achat2.checked)     total += 94;    
 
if (caddie.achat3.checked)     total += 48;    
 
caddie.Total.value = total+" ?"; }  
 
-->  
 
</script>

 
avec le formulaire suivant :  
 
<form name="caddie">    
 
<label for"achat1">Produit 1</label>    
 
<input type="checkbox" name="achat1" id="achat1" value="0" OnClick="calculette()" />    
 
<label for"achat2">Produit 2</label>    
 
<input type="checkbox" name="achat2" id="achat2" value="0" OnClick="calculette()" />    
 
<label for"achat3">Produit 3</label>    
 
<input type="checkbox" name="achat3" id="achat3" value="0" OnClick="calculette()" />  
 
<input type="text" name="Total" readonly /> </form>  

 
 
Et voilà mon problème : ce script fonctionne nickel sous internet explorer mais rien sur firefox.
 
J'ai fait quelques recherches et apparement, c'est la commande onclick qui ne se gère pas sous firefox.
 
 
Quelqu'un aurait il une solution à le proposer, je galère
 
D'avance merci a tous

mood
Publicité
Posté le 11-06-2009 à 00:48:06  profilanswer
 

n°1893923
coldvibe
Posté le 11-06-2009 à 01:03:58  profilanswer
 

pour plus de clarté :  

Code :
  1. <script type="text/javascript">  
  2.  
  3. <!-- function calculette ()  
  4.  
  5. {   var total=0;    
  6.  
  7. if (caddie.achat1.checked)     total += 100;  
  8.  
  9. if (caddie.achat2.checked)     total += 94;    
  10.  
  11. if (caddie.achat3.checked)     total += 48;    
  12.  
  13. caddie.Total.value = total+" ?"; }  
  14.  
  15. -->  
  16.  
  17. </script>


 
 

Code :
  1. <form name="caddie">    
  2.  
  3. <label for"achat1">Produit 1</label>    
  4.  
  5. <input type="checkbox" name="achat1" id="achat1" value="0" OnClick="calculette()" />    
  6.  
  7. <label for"achat2">Produit 2</label>    
  8.  
  9. <input type="checkbox" name="achat2" id="achat2" value="0" OnClick="calculette()" />    
  10.  
  11. <label for"achat3">Produit 3</label>    
  12.  
  13. <input type="checkbox" name="achat3" id="achat3" value="0" OnClick="calculette()" />  
  14.  
  15. <input type="text" name="Total" readonly /> </form>

n°1893971
-KristoV-
Posté le 11-06-2009 à 09:22:41  profilanswer
 

As-tu essayé en mettant onclick (sans majuscules) à la place de tes OnClick (pas très standards) ?

n°1894040
pataluc
Posté le 11-06-2009 à 11:05:35  profilanswer
 

+1 normalement c'est en minuscule: http://www.w3schools.com/htmldom/dom_obj_event.asp
 
mais ca fonctionne chez moi quand même.

n°1894044
deliriumtr​emens
sic transit intestinal...
Posté le 11-06-2009 à 11:16:41  profilanswer
 

Testé, ça marche parfaitement sous ie 7.0.xx et firefox (3.0.10)... si on enlève les balises de commentaires dans la fonction js
<!--
et
-->
 
Je pense que tu t'en doutes, mais sait-on jamais...


Message édité par deliriumtremens le 11-06-2009 à 11:16:55
n°1894214
coldvibe
Posté le 11-06-2009 à 16:12:27  profilanswer
 

j'ai donc testé les deux et ca ne fonctionne toujours pas sous ff (j'ai egalement la version 3.0.10, ca fonctionne che vous tous?
 
J'ai la developper bar et j'ai bien regardé, mon js est activé....
 
le mystère reste entier comme le lait du même nom
 
Merci d'avoir jeté un oeil

n°1894268
tpierron
Posté le 11-06-2009 à 20:44:05  profilanswer
 

Nan, c'est le script calculette() qui est pourri. Sans préfixe, FF cherche les objets reférencé dans l'objet "window". "caddie" se trouve dans document, il faut donc le préciser :
 

Code :
  1. <script type="text/javascript">  
  2. function calculette ()  
  3. {
  4.    var total=0
  5.  
  6.    if (document.caddie.achat1.checked)     total += 100;  
  7.    if (document.caddie.achat2.checked)     total += 94;    
  8.    if (document.caddie.achat3.checked)     total += 48;    
  9.  
  10.    document.caddie.Total.value = total+" ?"
  11. }
  12. </script>

n°1894362
pataluc
Posté le 12-06-2009 à 10:11:52  profilanswer
 

faudra pas utiliser getElementById pour être plus correct?


Message édité par pataluc le 12-06-2009 à 10:13:04
n°1894381
SICKofitAL​L
misanthrope
Posté le 12-06-2009 à 10:50:23  profilanswer
 

En effet ;)


---------------
We deserve everything that's coming...
n°1894430
coldvibe
Posté le 12-06-2009 à 12:51:00  profilanswer
 

D'abord, merci a tous de vous concentrer sur mon probleme, ca fait plaisir :)
 
J'ai donc testé en ajoutant document. comme tpierron l'a suggéré, pour le même résultat, mon addition n'apparaît toujours pas.
 
J'suis en train de tester avec un getElementById mais comme j'suis une bille en js, j'ai un peu de mal, je vous tient au courant.
 
Encore merci a tous

mood
Publicité
Posté le 12-06-2009 à 12:51:00  profilanswer
 

n°1894438
bul_3
Posté le 12-06-2009 à 13:16:46  profilanswer
 

bonjour,
ça fonctionne parfaitement avec FF,
même avec les quelques erreurs html
 
<body>
 <script type="text/javascript">  
  function calculette ()  
  {   var total=0;    
   if (caddie.achat1.checked)     total += 100;  
   if (caddie.achat2.checked)     total += 94;    
   if (caddie.achat3.checked)     total += 48;    
   caddie.Total.value = total+" ?";  
  }  
 </script>  
      <form name="caddie">    
   <label for="achat1">Produit 1</label>    
   <input type="checkbox" name="achat1" id="achat1" value="0" OnClick="calculette()" />    
   <label for="achat2">Produit 2</label>    
   <input type="checkbox" name="achat2" id="achat2" value="0" OnClick="calculette()" />    
   <label for="achat3">Produit 3</label>    
   <input type="checkbox" name="achat3" id="achat3" value="0" OnClick="calculette()" />  
   <input type="text" name="Total" readonly />  
  </form>
</body>
 
@+

n°1894439
bul_3
Posté le 12-06-2009 à 13:18:04  profilanswer
 

et FF préfèreras :
document.caddie.achat1.checked...et les autres
document.caddie.Total.value = total+" ?";  

n°1894522
tpierron
Posté le 12-06-2009 à 15:18:07  profilanswer
 

coldvibe a écrit :

J'ai donc testé en ajoutant document. comme tpierron l'a suggéré, pour le même résultat, mon addition n'apparaît toujours pas.


 
C'est quoi l'erreur affiché dans la console javascript (Ctrl+Shift+J sous FF) ? Chais_moi_ça_marche™

n°1894530
coldvibe
Posté le 12-06-2009 à 15:23:32  profilanswer
 

Hello a tous
 
voila, j'ai combiné le code de bul_3, le document. de tpierron et le onclick sans majuscules de kristov et tou fonctionne sous firefox
 
voici donc mon code final :  
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Document sans nom</title>
  6. <script type="text/javascript">  
  7.  function calculette ()  
  8.  {   var total=0;    
  9.   if (document.caddie.achat1.checked)     total += 100;  
  10.   if (document.caddie.achat2.checked)     total += 94;    
  11.   if (document.caddie.achat3.checked)     total += 48;    
  12.   document.caddie.Total.value = total+" ";  
  13.  }  
  14. </script>  
  15. </head>
  16. <body>
  17.  
  18.      <form name="caddie">    
  19.   <label for="achat1">Produit 1</label>    
  20.   <input type="checkbox" name="achat1" id="achat1" value="0" onclick="calculette()" />    
  21.   <label for="achat2">Produit 2</label>    
  22.   <input type="checkbox" name="achat2" id="achat2" value="0" onclick="calculette()" />    
  23.   <label for="achat3">Produit 3</label>    
  24.   <input type="checkbox" name="achat3" id="achat3" value="0" onclick="calculette()" />  
  25.   <input type="text" name="Total" readonly />  
  26.  </form>
  27. </body>
  28. </html>


 
un grand merci à tous :)

n°1894624
tpierron
Posté le 12-06-2009 à 18:03:38  profilanswer
 

Arf, effectivement, j'avais un DOCTYPE HTML 4.0 dans mon test, qui n'est pas sensible à la casse, alors qu'en XHTML, ça l'est.

n°1894633
Profil sup​primé
Posté le 12-06-2009 à 19:24:16  answer
 

Code :
  1. <input type="text" name="Total" readonly />


est incorrect, readonly doit avoir une valeur :

Code :
  1. <input type="text" name="Total" readonly="readonly" />

;) et +1 pour l'utilisation de getElementById :
 

Code :
  1. function calculette ()  
  2. {   var total=0;    
  3.   if (document.getElementById('achat1').checked)     total += 100;  
  4.   if (document.getElementById('achat2').checked)     total += 94;    
  5.   if (document.getElementById('achat3').checked)     total += 48;    
  6.   document.getElementById('Total').value = total+" ";  
  7. }


Message édité par Profil supprimé le 12-06-2009 à 19:24:38

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Compatibilité onclick firefox

 

Sujets relatifs
[NON RESOLU] Firefox et scrollTo : un drôle de comportementProbleme d'appel de fonction php via onclick
Image dans body mailto javascript firefoxImage dans body mailto javascript firefox
Ajax ne marche pas sous firefoxDifférence IE / Firefox
Recuperer / afficher élément sur evenement onclick[Resolu]Firefox Fonction Javascript replace fonctionne pas
Inclure une page avec onclick 
Plus de sujets relatifs à : Compatibilité onclick firefox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR