Ma fonction ne se lance pas [Résolu]

Signaler
Messages postés
12
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
11 avril 2013
-
Messages postés
12
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
11 avril 2013
-
Bonjour tous le monde et merci d'avance pour vos réponses...

Voilà mon souci:

<script language="javascript">
<!--
function changeColor(name) {
alert("test ok");
if ( document.getElementsByName(name).value == "SITUATION X" ) {
document.getElementsByName(name).style.background-color:#b00000;
} else if ( document.getElementsByName(name).value == "SITUATION Y" ) {
document.getElementsByName(name).style.background-color:#000000;
document.getElementsByName(name).style.color:#ffffff;
} else {
document.getElementsByName(name).style.background-color:#ffffff;
document.getElementsByName(name).style.color:#000000;
}
}
//-->
</script>

[...]

<select id="situation_<?php echo $pers->id; ?>" name="situation_<?php echo $pers->id; ?>" onChange="changeColor(this.name);">
<?php foreach ($this->situation as $sit) :
echo '<option value="'.$sit->situation.'"';
if ($sit->situation==$pers->situation){
echo ' selected="selected"';
}
echo '>'.$sit->situation.'</option>';
endforeach; ?>
</select>



La fonction ne se lance pas! et quand je remplace onChange="changeColor(this.name);" par onChange="alert('testok');changeColor(this.name);" l'alerte fonctionne donc ça doit être dans ma fonction... mais où?
Je doit oublier un truc mais je ne vois pas quoi...

Merci de votre aide.

5 réponses

Messages postés
41
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
13 décembre 2012

Ta fonctionne ne se lançait pas parce qu'il y avait des erreurs dedans.

Pour ce que ça doit faire ça je peux difficilement t'aider tu le sais plus que moi :)

C'est peut-être au niveau des paramètres que tu passe qui n'est pas bon.

Tu peux toujours utilisé la console de debug avec firefox ou chrome

Tu peux regarder ce lien pour comprendre comment ça fonctionne.

http://asymptomatic.net/2007/08/22/2643/debugging-javascript-in-firefox-with-firebug-and-breakpoints

Ça pourrait t'aider à trouver l'erreur.
Messages postés
12
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
11 avril 2013

	function changeColor(myId) {
var myElement = document.getElementById(myId);
var myIndex = myElement.selectedIndex;
var myValue = myElement.options[myIndex].value;
if( myValue == "ABSENCE A REGULARISER" ) {
myElement.style.backgroundColor  = "#b00000";
myElement.style.color = "#000000";
}else if( myValue == "DESERTION" ) {
myElement.style.backgroundColor  = "#000000";
myElement.style.color = "#ffffff";
}else {
myElement.style.backgroundColor  = "#ffffff";
myElement.style.color = "#000000";
}
}


Comme ça, ça fonctionne, et c'est plus propre! Voilà pour les prochains :)
Messages postés
41
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
13 décembre 2012

	function changeColor(name) {
alert("test ok");
if ( document.getElementsByName(name).value == "SITUATION X" ) {
document.getElementsByName(name).style.backgroundColor  = "#b00000";
} else if ( document.getElementsByName(name).value == "SITUATION Y" ) {
document.getElementsByName(name).style.backgroundColor = "#000000";
document.getElementsByName(name).style.color = "#ffffff";
} else {
document.getElementsByName(name).style.backgroundColor = "#ffffff";
document.getElementsByName(name).style.color = "#000000";
}
}


Ceci devrait fonctionner.
Messages postés
12
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
11 avril 2013

Merci galled!

L'alerte fonctionne donc la fonction se lance bien mais pas le reste...
Je doit avoir un problème de syntaxe pour le changement de style.
Messages postés
12
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
11 avril 2013

Ok d'accord à moi de jouer!

Merci Galled!