Problème de guillemets dans le Javascript
Fermé
Dédé86
Messages postés
682
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2017
-
28 mai 2008 à 11:58
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 - 30 mai 2008 à 21:14
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 - 30 mai 2008 à 21:14
A voir également:
- Problème de guillemets dans le Javascript
- Telecharger javascript - Télécharger - Langages
- Guillemets français clavier - Forum Clavier
- Guillemets français sur ordi Dell ✓ - Forum Clavier
- A javascript error occurred in the main process - Forum Matériel & Système
- Javascript void 0 c'est quoi ✓ - Forum Réseaux sociaux
5 réponses
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
30 mai 2008 à 16:31
30 mai 2008 à 16:31
Bjr
Evidemment car tu as fait une erreur ...
Curieusement tu n'as pas fait l'erreur lorsque tu as écrit style='background-color:"+ mesCouleurs[i] +";'>"
Là c'est bon
En fait il faut bien comprendre qu'une chaîne de caractères reste une chaîne de caractères
Si tu décides de commencer ta chaîne par un guillemet alors elle doit se terminer par un guillemet. Tout ce qui se trouve encadrer par les 2 guillemets n'est pas interprété : c'est du texte pur et dur
Je suppose que la paramètre couleur que tu essais de passer à ta fonction est une châine de caractères par ex "00FF2A"
Donc tu dois écrire
document.write("<option onclick='changerCouleur("+mesCouleurs[i]+");' style='background-color:"+ mesCouleurs[i] +";'>"+ mesCouleurs[i] +"</option>");
Là c'est mieux mais ca ne fonctionne toujours pas : en effet ce que tu dois obtenir c'est
<option onclick='changerCouleur("00FF2A");' >...</option>
et surtout pas (enfin dans ce cas précis il se peut que ça fonctionne mais c'est un coup de chance ...)
<option onclick='changerCouleur(00FF2A);' >...</option> !!!!!!
Donc tu te retrouves dans la situation où tu ne peux utiliser ni une apostrophe ni un guillemet : comment faire alors ?
En utilisant un sequence d'échappement ou escape sequence (pour faire genre ...)
document.write("<option onclick='changerCouleur(\""+mesCouleurs[i]+"\");' style='background-color:"+ mesCouleurs[i] +";'>"+ mesCouleurs[i] +"</option>");
Note le \ devant le " : dans ce cas Javascript considère le guillemet comme faisant partie de la chaîne et non plus comme délimiteur ! Malin non ?
Ex plus simple pour bien comprendre : afficher un message d'alerte avec le mot Aujourd'hui
En encadrant avec des guillemets : no problemo
alert("Aujourd'hui");
En encadrant avec des quotes : la séquence d'échappement est obligatoire !
alert('Aujourd\'hui');
Evidemment car tu as fait une erreur ...
Curieusement tu n'as pas fait l'erreur lorsque tu as écrit style='background-color:"+ mesCouleurs[i] +";'>"
Là c'est bon
En fait il faut bien comprendre qu'une chaîne de caractères reste une chaîne de caractères
Si tu décides de commencer ta chaîne par un guillemet alors elle doit se terminer par un guillemet. Tout ce qui se trouve encadrer par les 2 guillemets n'est pas interprété : c'est du texte pur et dur
Je suppose que la paramètre couleur que tu essais de passer à ta fonction est une châine de caractères par ex "00FF2A"
Donc tu dois écrire
document.write("<option onclick='changerCouleur("+mesCouleurs[i]+");' style='background-color:"+ mesCouleurs[i] +";'>"+ mesCouleurs[i] +"</option>");
Là c'est mieux mais ca ne fonctionne toujours pas : en effet ce que tu dois obtenir c'est
<option onclick='changerCouleur("00FF2A");' >...</option>
et surtout pas (enfin dans ce cas précis il se peut que ça fonctionne mais c'est un coup de chance ...)
<option onclick='changerCouleur(00FF2A);' >...</option> !!!!!!
Donc tu te retrouves dans la situation où tu ne peux utiliser ni une apostrophe ni un guillemet : comment faire alors ?
En utilisant un sequence d'échappement ou escape sequence (pour faire genre ...)
document.write("<option onclick='changerCouleur(\""+mesCouleurs[i]+"\");' style='background-color:"+ mesCouleurs[i] +";'>"+ mesCouleurs[i] +"</option>");
Note le \ devant le " : dans ce cas Javascript considère le guillemet comme faisant partie de la chaîne et non plus comme délimiteur ! Malin non ?
Ex plus simple pour bien comprendre : afficher un message d'alerte avec le mot Aujourd'hui
En encadrant avec des guillemets : no problemo
alert("Aujourd'hui");
En encadrant avec des quotes : la séquence d'échappement est obligatoire !
alert('Aujourd\'hui');
JR des cavernes
Messages postés
152
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
19 mai 2009
84
28 mai 2008 à 12:31
28 mai 2008 à 12:31
Alors :
En fait, les guillemets simples doivent être dans le guillemets doubles. Ils servent à séparer les variables (mesCouleurs[i]) du texte (<option style='background-color:).
Par exemple si tu as du mal tu peux faire comme ça :
tu écris ton texte avec aucun guillemets double :
<option style='background-color:mesCouleurs[i] ;'>mesCouleurs[i]</option>
puis tu encadre toutes tes variables avec : "+ variable +" et tu mets le tout entre guillemets :
"<option style='background-color:" + mesCouleurs[i] + ";'>" + mesCouleurs[i] + "</option>"
Normalement ça marche !
En fait, les guillemets simples doivent être dans le guillemets doubles. Ils servent à séparer les variables (mesCouleurs[i]) du texte (<option style='background-color:).
Par exemple si tu as du mal tu peux faire comme ça :
tu écris ton texte avec aucun guillemets double :
<option style='background-color:mesCouleurs[i] ;'>mesCouleurs[i]</option>
puis tu encadre toutes tes variables avec : "+ variable +" et tu mets le tout entre guillemets :
"<option style='background-color:" + mesCouleurs[i] + ";'>" + mesCouleurs[i] + "</option>"
Normalement ça marche !
Dédé86
Messages postés
682
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2017
208
28 mai 2008 à 14:32
28 mai 2008 à 14:32
D'accord ! merci pour ton aide.
A plus tard.
A plus tard.
JR des cavernes
Messages postés
152
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
19 mai 2009
84
28 mai 2008 à 12:03
28 mai 2008 à 12:03
J'aurais mis quelque chose du genre :
document.write("<option style='background-color:" + mesCouleurs[i] ";'>" + mesCouleurs[i] + "</option>");
document.write("<option style='background-color:" + mesCouleurs[i] ";'>" + mesCouleurs[i] + "</option>");
Dédé86
Messages postés
682
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2017
208
28 mai 2008 à 12:09
28 mai 2008 à 12:09
Merci mais ça ne fonctionne pas :(
JR des cavernes
Messages postés
152
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
19 mai 2009
84
28 mai 2008 à 12:17
28 mai 2008 à 12:17
J'ai oublié un + :
document.write("<option style='background-color:" + mesCouleurs[i] + ";'>" + mesCouleurs[i] + "</option>");
Je sais pas si le pb est là...
document.write("<option style='background-color:" + mesCouleurs[i] + ";'>" + mesCouleurs[i] + "</option>");
Je sais pas si le pb est là...
Dédé86
Messages postés
682
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2017
208
28 mai 2008 à 12:19
28 mai 2008 à 12:19
Oui ça fonctionne merci beaucoup mais peux tu m'expliquer l'imbrication des guillemets ? a quel moment je dois mettre des guillemets simples et des guillemets doubles ?? merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dédé86
Messages postés
682
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2017
208
30 mai 2008 à 14:13
30 mai 2008 à 14:13
Re Bonjour
J'ai encore un problème. J'ai la fonction changerCouleur en Javascript qui modifie la couleur d'une textarea lorsque l'utilisateur clique sur une <option> d'un <select> :
function changerCouleur(couleur)
{
document.getElementById('maTextarea').style.backgroundColor=couleur;
}
Je vous épargne les détails du code pour me concentrer sur ce qui ne fonctionne pas. J'envoie à ma fonction le nom de la couleur quand l'événement onclick se déclenche. J'ai mis en gras ce qui ne marche pas.
document.write("<option onclick='changerCouleur(mesCouleurs[i]);' style='background-color:"+ mesCouleurs[i] +";'>"+ mesCouleurs[i] +"</option>");
Lorsque je retire l'argument mesCouleurs[i]), la fonction est appelée. Mais sinon non. Je pense donc que l'erreur vient de guillemets à mettre mais je ne suis pas sûr de la syntaxe.
Pouvez-vous m'aider svp ?
J'ai encore un problème. J'ai la fonction changerCouleur en Javascript qui modifie la couleur d'une textarea lorsque l'utilisateur clique sur une <option> d'un <select> :
function changerCouleur(couleur)
{
document.getElementById('maTextarea').style.backgroundColor=couleur;
}
Je vous épargne les détails du code pour me concentrer sur ce qui ne fonctionne pas. J'envoie à ma fonction le nom de la couleur quand l'événement onclick se déclenche. J'ai mis en gras ce qui ne marche pas.
document.write("<option onclick='changerCouleur(mesCouleurs[i]);' style='background-color:"+ mesCouleurs[i] +";'>"+ mesCouleurs[i] +"</option>");
Lorsque je retire l'argument mesCouleurs[i]), la fonction est appelée. Mais sinon non. Je pense donc que l'erreur vient de guillemets à mettre mais je ne suis pas sûr de la syntaxe.
Pouvez-vous m'aider svp ?
30 mai 2008 à 21:14
A bientôt.