IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Mon Javascript ne s'execute pas sous Firefox


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Par défaut Mon Javascript ne s'execute pas sous Firefox
    Bonjour à tous,
    J'ai un problème et je n'arrive pas a trouver une solution, j'ai un script qui ne s'execute pas sous firefox mais sous IE il s'execute normalement, et je n'arrive pas à trouver une sollution si quelqu'un peut m'aidé, voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr-FR" xml:lang="fr">
    
    <head>
    
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<meta name="title" content="Exemple Page" />
    	<meta name="language" content="FR" />
    	<meta name="author" content="Rahim" />
        <title>Exemple Page</title>
    
    	<style type="text/css">
    		textarea.limiter
    		{
    		width: 610px;
    		height:80px;
    		font-size: 10px;
    		font-family: Verdana, sans-serif;
    		}
    
    		input.decompte
    		{
    		width: 25px;
    		position: absolute;
    		border: 1px solid #FF0000;
    		font-size: 10px;
    		font-family: Verdana, sans-serif;
    		text-align: center;
    		}
    	</style>
    	<script type="text/javascript">
    	<!--
    		// args : string moncontroletexte, int nbcar, string moncontroledecompte
    		// return : aucun
    		// Affecte à certains évènements d'un textarea, le contrôle de la longueur de son contenu
    		 function LimiterTextArea(msg, nbcar, div_decompte)
    			{
    				moncontroletexte = document.getElementById(msg);
    				moncontroledecompte = document.getElementById(div_decompte);
    
    				moncontroletexte.onclick = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
    				moncontroletexte.onblur = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
    				moncontroletexte.onkeyup = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
    				moncontroletexte.onkeypress = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
    				
    				// Affichage du nombre de caractères restant
    				moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);
    			}
    
    		// TextAreaEstRempli
    		// args : textarea moncontroletexte, int nbcar, element_HTML moncontroledecompte
    		// return : bool
    		// Renvoie vrai si le nombre de caractères maximum du textarea n'est pas atteint
    		function TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)
    		{
    		if (moncontroletexte)
    		{
    		if (moncontroletexte.value.length <= nbcar)
    		{
    		//alert("pas rempli");
    		// mes actions ...
    
    		// *** Affichage du nombre de caractères restant
    		if(moncontroledecompte.type)
    		moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
    		else
    		moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);
    
    		return true;
    		}
    		else
    		{
    		//alert("rempli");
    		// mes actions ...
    
    		// Affichage du nombre de caractères restant
    		moncontroletexte.value = moncontroletexte.value.substr(0, nbcar);
    
    		// *** Affichage du nombre de caractères restant
    		if(moncontroledecompte.type)
    		moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
    		else
    		moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);
    
    		return false;
    		}
    		}
    		}
    
    		// NbCarRestant
    		// args : textarea moncontroletexte, int nbcar
    		// return : int
    		// Renvoie le nombre de caractère à saisir
    		function NbCarRestant(moncontroletexte, nbcar)
    		{
    		if (moncontroletexte.value.length)
    		return new Number(nbcar - moncontroletexte.value.length);
    		else
    		return new Number(nbcar);
    		}
    	// -->
    	</script>
    	<script type="text/javascript">
    	<!--
    		function add_smile(smile) {
    				var smtexte = form_mess.msg.value + "";
    				form_mess.msg.value = form_mess.msg.value + smile
    		}
    
    		function valide()
    		{
    				var email     = document.form_mess.mail.value;
    				var verif     = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}$/
    
    				if (form_mess.nom.value == "")
    				{
    						alert('Merci de remplir le champs Pseudo');
    				}
    				else if (form_mess.msg.value == "")
    				{
    						alert('Merci de remplir le champs Message');
    				}
    				else if (form_mess.msg.value.length<5)
    				{
    						alert('Le champs Message doit contenir au moins 5 caratères');
    				}
    				else if (email != "")
    				{
    						if (verif.exec(email) == null)
    						{
    								alert('E-mail non valide');
    						}
    						else
    						{
    								form_mess.submit();
    						}
    				}
    				else
    				{
    						form_mess.submit();
    				}
    		}
    	// -->
    	</script>
    </head>
    
    <body>
    	<center>
    		<form name="form_mess" action="form.php" method="post">
    			Pseudo: <input type="text" name="nom" size="40" /><br />
    			E-Mail: <input type="text" name="mail" size="40" /><br /><br />
    
    			<input type="button" value="Gras" onclick="add_smile('Texte en gras');" style="font-weight:bold" />
    			<input type="button" value="Italique" onclick="add_smile('Texte en italique');" style="font-style:italic" />
    			<input type="button" value="Souligné" onclick="add_smile('Texte souligné');" style="text-decoration:underline" />
    			<input type="button" value="Lien" onclick="add_smile('Texte du lien');" />&nbsp;
    			<input type="text" id="div_decompte" name="div_decompte" class="decompte" value="200" /><br />
    			
    			<textarea id="msg" name="msg" class="limiter" cols="" rows=""></textarea>
    			<script type="text/javascript">LimiterTextArea('msg', 200, 'div_decompte');</script>
    			<br />
    			<input type="button" onclick="valide()" value="Envoyer" />&nbsp;
    			<input type="reset" id="annuler" name="annuler" value="Annuler" />
    		</form>
    	</center>
    </body>
    </html>

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Salut !
    Il faut savoir que si ça marche sous IE, c’est par erreur. IE a un comportement anormal : il référence les éléments avec un attribut name dans des variables globales JavaScript. C’est le cas de ton form_mess.

    Pour que ton script marche « normalement », il faut rajouter ceci à la suite du <form> dans le code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    // <!--
     
    	form_mess = document.forms['form_mess'];
     
    // -->
    </script>
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre confirmé Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Par défaut
    Merci beaucoup Watilin pour ta réponse c'est été exactement ça le problème je savais pas, j'ai testé et ça marche très bien comme ça

    j'ai un petit souci, à la fin du code j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">LimiterTextArea('msg', 200, 'div_decompte');</script>
    et ça à pour bute de limité le nombre de caractère dans le textarea, seulement moi je viens de mettre 200 à la place d'une variable "$mysql_car" situer dans la base MySQL. enfaite ce chiffre (200) je peux le changé depuis le panneau d'administration, mais j'ai enlevé cette variable, j'ai testé plusieurs méthode pour l'ajouter mais toujours ça marche pas.
    Ma question est comment faire pour la remettre dans ce scripte ?

    Edit:
    C'est bon j'ai trouvé l'astuce avec un petit changement, merci à andry.aime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script type="text/javascript">
    frm_msg = document.forms['form_mess'];
    LimiterTextArea(frm_msg.elements['msg'], <?php echo $mysql_car ;?>, frm_msg.elements['div_decompte']);
    </script>
    Bonne journée à tous

  4. #4
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Ok,
    n’oublie pas le bouton résolu
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. javascript ne s'execute pas sous ff
    Par roland34 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/11/2011, 10h28
  2. Code javascript qui ne s'execute pas sous IE
    Par sheira dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/05/2011, 16h49
  3. Javascript marche pas sous firefox
    Par ifsera dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/03/2009, 10h04
  4. Mon background apparait pas sous Firefox ?!?!
    Par will89 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 02/06/2008, 13h29
  5. Mon pointeur de souris prévu ne s'affiche pas sous firefox
    Par maxmarie dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 10/11/2007, 23h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo