onclick ne marche pas sous firefox

onclick ne marche pas sous firefox - HTML/CSS - Programmation

Marsh Posté le 15-03-2009 à 12:17:10    

Bonjour à toutes et à tous !
Je n'arrive pas à faire marcher la fonction "onclick" sur firefox. Car cela marche parfaitement sous IE.
Pour info, j'ai bien indiqué les champs "id" et "name".
 
Pouvez-vous m'aider et me dire si c'est normal ?
Merci..

Reply

Marsh Posté le 15-03-2009 à 12:17:10   

Reply

Marsh Posté le 15-03-2009 à 12:44:55    

Si onclick ne fonctionnait pas, ca se saurait ;)
 
C'est quoi ton code exactement ?


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 15-03-2009 à 20:43:16    

ET LE CODE IL EST OÙ POUR QU'ON PUISSE T'AIDER !!!!!!!!


---------------
Blablaté par Harko
Reply

Marsh Posté le 30-09-2009 à 03:09:40    

Salut,
 
Je suis en train de faire une page web et le onclick fonctionne parfaitement sous IE et sous Opera, mais ne fonctionne pas sous Firefox !
 
voici le code :
 

Citation :

<table align="center" border="0" cellpadding="5" width="650">
<tr>
  <td align="right"><input type="button" value="Calculer le tarif" onclick="calcul_tarif()" /></td>
</tr>
</table>


 
Quelqu'un a t'il une idée ? Dans la fonction calcul_tarif() j'ai ajouté un alert et ça ne fait malgré tout rien !
La fonction calcul_tarif ne serait donc pas appelée, mais pourquoi ?


Message édité par jcop le 30-09-2009 à 03:11:58
Reply

Marsh Posté le 30-09-2009 à 07:51:17    

le reste du code, il serait possible de l'avoir ??


---------------
Blablaté par Harko
Reply

Marsh Posté le 02-10-2009 à 02:50:33    

voilà la page en question : http://circuitsimprimes.free.fr/commande.php
Ce qui est encore plus bizarre sous firefox, est que certains boutons marchent (en l'occurence les boutons 'ajouter un circuit' et 'retirer un circuit'),  mais pas d'autres (en l'occurence les boutons 'calculer le tarif' et 'envoyer'), et je ne vois vraiment pas pourquoi !!!
 
De plus il y a un input box qui ne doit s'afficher que lorsque l'utilisateur sélectionne 'oui' pour perçage. Ça marche sous IE et Opéra, mais pas sous firefox.
 
Enfin sous IE quand on passe la souris sur les éléments du menu, ceux-ci passent en surbrillance. Sous firefox ça ne fait rien !

Reply

Marsh Posté le 02-10-2009 à 06:58:24    

tu as installé firebug ????
Perce que là tu as juste une grosse erreur JS quand on clique sur "calculer le tarif" et le bouton "envoyer" il marche là :D


---------------
Blablaté par Harko
Reply

Marsh Posté le 02-10-2009 à 07:00:02    

super tu fais un  

Code :
  1. document.getElementById("choix_nb_faces" + i)


alors que choix_nb_faces+i n'est pas un id mais un name, rajoute aussi un id sur le select


---------------
Blablaté par Harko
Reply

Marsh Posté le 02-10-2009 à 19:58:01    

gatsu35 a écrit :

tu as installé firebug ????
Parce que là tu as juste une grosse erreur JS quand on clique sur "calculer le tarif"


Sous IE le bouton 'Calculer le tarif' marche parfaitement bien. En fait tout fonctionne parfaitement bien sous IE. Mais je vais installer firebug voir ce que ça me dit.
 

gatsu35 a écrit :

et le bouton "envoyer" il marche là :D


Non le bouton 'envoyer' ne fonctionne pas, dans le sens où lorsque l'on clique dessus, une fonction javascript doit être appelée (fonction qui vérifie entre autres que l'utilisateur ne rentre pas n'importe quoi dans les champs), or ce n'est pas le cas sous Firefox.

Message cité 1 fois
Message édité par jcop le 02-10-2009 à 20:07:40
Reply

Marsh Posté le 02-10-2009 à 20:47:39    

jcop a écrit :


Sous IE le bouton 'Calculer le tarif' marche parfaitement bien. En fait tout fonctionne parfaitement bien sous IE. Mais je vais installer firebug voir ce que ça me dit.
 


Et tu as lu le message juste après où je te dis que ta fonction est mal utilisée :o
c'est normal que ça marche sous IE, IE est une sombre merde laxiste.
 

jcop a écrit :


Non le bouton 'envoyer' ne fonctionne pas, dans le sens où lorsque l'on clique dessus, une fonction javascript doit être appelée (fonction qui vérifie entre autres que l'utilisateur ne rentre pas n'importe quoi dans les champs), or ce n'est pas le cas sous Firefox.


Le problème est le même, tu appelles calcul_tarifs() ce qui fait que tu pètes une erreur JS, et une erreur JS dans une fonction appelée depuis un onsubmit, ca laisse quand meme le navigateur envoyer le formulaire


---------------
Blablaté par Harko
Reply

Marsh Posté le 02-10-2009 à 20:47:39   

Reply

Marsh Posté le 03-10-2009 à 09:43:32    

gatsu35 a écrit :


c'est normal que ça marche sous IE, IE est une sombre merde laxiste.


Mais oui bien sûr  :sarcastic:
Moi j'aurais plutôt pensé le contraire. J'ajouterais que sous Opera ça marche aussi.

Reply

Marsh Posté le 03-10-2009 à 12:02:08    

jcop a écrit :


Mais oui bien sûr  :sarcastic:
Moi j'aurais plutôt pensé le contraire. J'ajouterais que sous Opera ça marche aussi.


En fait c'est vrai, IE laisse passer n'importe quoi, et Opera a semble't-il suivi le délire dans certains cas...
En fait si ca marche pas sous FF, c'est que ton code est foireux, point barre [:spamafote]

 

De plus comme dit il te retourne une erreur sur le getElementById, car l'id n'existe pas. getElementById est censé retourner un element en fonction de son id, s'il est pas défini, forcément ....


Message édité par SICKofitALL le 03-10-2009 à 12:06:18

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 03-10-2009 à 15:03:38    

jcop a écrit :


Mais oui bien sûr  :sarcastic:
Moi j'aurais plutôt pensé le contraire. J'ajouterais que sous Opera ça marche aussi.


Tu fait un getElementById sur un ID qui n'existe pas, ce n'est pas un ID mais un name qui se trouve sur ton select, rajoute un id="" avec le meme name, et ton probleme est resolu.
 
Si tu veux pas nous écouter c'est toi que ça regarde :o


---------------
Blablaté par Harko
Reply

Marsh Posté le 04-10-2009 à 23:04:32    

bon voilà ça marche enfin :)
J'ai effectivement dû rajouter des id=""
 
J'aimerais par ailleurs que lorsque l'utilisateur survole un élément du menu, celui-ci change de background.
Ça marche actuellement sous IE, mais pas sous Firefox !
Sauriez-vous me dire ce qui ne va pas dans le code ?
Voici un extrait clé :

Citation :

<td class="nav" background="bck_gray.png" onmouseover="background='bck_lightred.png'" onmouseout="background='bck_gray.png'"><a href="tarifs.htm">Calcul du tarif</a></td>


 
Sinon, si vous avez besoin de faire faire un circuit imprimé, vous savez dorénavant à qui s'adresser !
 
Me reste à référencer le site !

Reply

Marsh Posté le 04-10-2009 à 23:24:13    

jcop a écrit :

bon voilà ça marche enfin :)
J'ai effectivement dû rajouter des id=""

 

J'aimerais par ailleurs que lorsque l'utilisateur survole un élément du menu, celui-ci change de background.
Ça marche actuellement sous IE, mais pas sous Firefox !
Sauriez-vous me dire ce qui ne va pas dans le code ?
Voici un extrait clé :

Citation :

<td class="nav" background="bck_gray.png" onmouseover="background='bck_lightred.png'" onmouseout="background='bck_gray.png'"><a href="tarifs.htm">Calcul du tarif</a></td>

 

Sinon, si vous avez besoin de faire faire un circuit imprimé, vous savez dorénavant à qui s'adresser !

 

Me reste à référencer le site !


parce que ton code est mal écrit tout simplement.

Code :
  1. <td class="nav" background="bck_gray.png" onmouseover="this.background='bck_lightred.png'" onmouseout="this.background='bck_gray.png'"><a href="tarifs.htm">Calcul du tarif</a></td>


Et de nos jours on utilise les CSS pour faire ce que tu veux faire là.
Mais sauf pour IE6 qui ne connait le :hover que sur le A

 

Encore une fois, c'est bien la preuve que IE est une sombre merde laxiste au niveau du JS.


Message édité par gatsu35 le 04-10-2009 à 23:33:03

---------------
Blablaté par Harko
Reply

Marsh Posté le 05-10-2009 à 00:42:40    

Ça ne marche pas rajoutant le mot-clé this.
Bref Firefox est trop naze sur ce coup là !
 
Je vais devoir essayer de gérer la chose avec les CSS (pour ainsi espérer que ça marche sous Firefox)
 

Reply

Marsh Posté le 05-10-2009 à 00:48:19    

jcop a écrit :

Ça ne marche pas rajoutant le mot-clé this.
Bref Firefox est trop naze sur ce coup là !

 

Je vais devoir essayer de gérer la chose avec les CSS (pour ainsi espérer que ça marche sous Firefox)

 

Non ce n'est pas firefox le gros naze c'est IE [:mlc]

Code :
  1. <td class="nav" style="background:url(bck_gray.png)" onmouseover="this.style.background='bck_lightred.png'" onmouseout="this.style.background='bck_gray.png'"><a href="tarifs.htm">Calcul du tarif</a></td>
 

Je n'aurai pas pensé que au niveau dom le background ne soit plus géré par les bons navigateurs.

 

PS : les bouts de code que tu nous postent sont digne de 2000, mais pas de 2009 :D
Donc en postant nous t'aiderons à corriger ces petits écarts


Message édité par gatsu35 le 05-10-2009 à 00:51:20

---------------
Blablaté par Harko
Reply

Marsh Posté le 05-10-2009 à 02:14:21    

jcop a écrit :

Ça ne marche pas rajoutant le mot-clé this.
Bref Firefox est trop naze sur ce coup là !
 
Je vais devoir essayer de gérer la chose avec les CSS (pour ainsi espérer que ça marche sous Firefox)
 


:lol:
J'arrive à rien, c'est la faute de Firefox .. [:fail]
 
 
 
[:_edit]

Code :
  1. vite fait :
  2. <script type="text/javascript'>
  3. // ......
  4. var mouseOver = function (el, isOver)
  5. {
  6.   return el.style.background = (isOver ? 'bck_lightred.png' : 'bck_gray.png');
  7. }
  8. // ......
  9. </script>
  10. ...
  11. <td class="nav" style="background:url(bck_gray.png)"
  12. onmouseover="mouseOver (this, true)"
  13. onmouseout="mouseOver (this, false)">
  14.   <a href="tarifs.htm">Calcul du tarif</a>
  15. </td>


 
[:_edit]²
Et le fameux naze, il aurait compris qqch comme ca, contrairement à cette infâmie qu'est IE6 :

Code :
  1. <style type="text/css">
  2. td.nav {
  3.   background: url(bck_gray.png);
  4. /* définitions du style pour la classe nav appliquées aux td */
  5. }
  6. td.nav:hover {
  7.   background: url(bck_lightred.png);
  8. /* définitions du style pour la classe nav appliquées aux td lorsque la souris se trouve dessus !!*/
  9. }
  10. </style>
  11. ...
  12. <td class="nav">
  13.   <a href="tarifs.htm">Calcul du tarif</a>
  14. </td>


Message édité par SICKofitALL le 05-10-2009 à 02:22:41

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 05-10-2009 à 23:01:51    

Merci SICKofitALL pour le code.
J'ai donc appliqué ta 2ème méthode et ça marche sous Firefox, mais par contre ça ne marche plus sous IE !!!!!
Arghhh !

Reply

Marsh Posté le 05-10-2009 à 23:07:00    

jcop a écrit :

Merci SICKofitALL pour le code.
J'ai donc appliqué ta 2ème méthode et ça marche sous Firefox, mais par contre ça ne marche plus sous IE !!!!!
Arghhh !


La deuxieme méthode ? Celle du CSS ?
Pour info IE6 ne supporte pas la pseudo-classe :hover sur autre chose que les tags A (c'est d'ailleurs pour ca que j'ai écrit contrairement à cette infâmie qu'est IE6 :o )


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 05-10-2009 à 23:09:01    

Et si la premiere méthode ne fonctionne, essayes plutot ca

Code :
  1. var mouseOver = function (el, isOver)
  2. {
  3.   return el.style.backgroundImage = "url(" + (isOver ? "bck_lightred.png" : "bck_gray.png" ) + " )";
  4. }


 
J'ai pas testé (ni le premier d'ailleurs) mais c'est plus correct


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 05-10-2009 à 23:33:43    

Eh bien ça marche à la fois sous IE et sous Firefox !!!
Merci ! :)
J'ai enlevé le mot clé "return" dans la fonction mouseOver et ça a l'air de marcher également !

Reply

Marsh Posté le 06-10-2009 à 00:01:25    

Comem quoi, il ne s'agissait pas d'un soucis de navigateur, mais de code ;)
 
Et pourquoi enlever le return ? Un fonction est censée retourner qqch que je sache (de tte facon si le return n'est pas là, ca retourne quand même un "undefined", mais quand on veut faire les choses bien, alors on mets un return <valeur> ;) )


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 06-10-2009 à 01:24:19    

SICKofitALL a écrit :

Comem quoi, il ne s'agissait pas d'un soucis de navigateur, mais de code ;)
 
Et pourquoi enlever le return ? Un fonction est censée retourner qqch que je sache (de tte facon si le return n'est pas là, ca retourne quand même un "undefined", mais quand on veut faire les choses bien, alors on mets un return <valeur> ;) )


Une fonction n'est pas forcément censée retourner quelque chose. Depuis quand une fonction doit obligatoirement retourner quelque chose ?
 
si tu avais un onclick=function(), là tu pourrais faire un return false pour empecher le clic de se propager et donc d'accéder à la page linkée par le lien.


---------------
Blablaté par Harko
Reply

Marsh Posté le 06-10-2009 à 01:32:46    

gatsu35 a écrit :


Une fonction n'est pas forcément censée retourner quelque chose. Depuis quand une fonction doit obligatoirement retourner quelque chose ?
 
si tu avais un onclick=function(), là tu pourrais faire un return false pour empecher le clic de se propager et donc d'accéder à la page linkée par le lien.


tu as raison, ce n'est pas obligatoire en fait. En réalité, dans ce genre de cas, ca pourrait même poser problèmes à cause du cas que tu soulèves.
Ceci dit, perso je retourne tjrs qqch, question d'habitude ptêtre ;)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 06-10-2009 à 04:44:18    

SICKofitALL a écrit :


tu as raison, ce n'est pas obligatoire en fait. En réalité, dans ce genre de cas, ca pourrait même poser problèmes à cause du cas que tu soulèves.
Ceci dit, perso je retourne tjrs qqch, question d'habitude ptêtre ;)


Passe faire un tour sur un langage assez typé, tel que l'AS3, tu verras en général une fonction qui retourne quelque chose c'est une fonction à qui tu demandes quelque chose. ou alors une fonction qui va te retourner un status sur ce qu'elle à fait.
Dans le cas d'une fonction liée à un eventListener, il est complètement inutile de renvoyer quelque chose, d'ailleur elle doit avoir void comme déclaration de retour


---------------
Blablaté par Harko
Reply

Marsh Posté le 06-10-2009 à 07:59:31    

Je parlais que je retourne tjrs qqch bien sûr dans le cadre du JS :)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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