[JavaScript] questino très bête ! - valeur de retour d'une fonction

Bonjour,

Je voudrais récupérer la valeur de retour d’une fonction dans un “onChange”
En faisant ceci, ça ne marche pas :


<form>
<select onChange="appel()'>
...
</select>
</form>

<script language="JavaScript">
function appel() {
var test = "location.maframe.location.href='http://www.developpez.com'";
return test;
}
</script>

Normalement, ce code devrait charger le site developpez.com dans la frame "maframe" dès que je sélectionne une nouvelle valeur dans mon select…
Mais ça ne marche pas…

Pouvez vous m’aider?

Merci bcp !!!

C’est pas option, plutôt que select ?

Non c’est bien Select.
En le mettant dans select, dès qu’une valeur change parmis tous les “option” le onChange intervient.
Vous avez pas de pistes? Je suis sur que c’est tout bête mais j’ai essayé plein de syntaxes différentes et aucun n’a l’air de fonctionner…

location.maframe.location.href

tu pense pas qu’il y a une erreur ?

document.maframe.location.href

:wink:

oui exact encore une faute de frappe.
J’ai à nouveau relis mon post et là normalement il n’y en a plus.

je crois que c’est meme parent.maframe.location.href

Sur mon propre forum (pas de frames toutefois) :

<select onchange="document.location.href='http://forum.generations-starwars.com/'+this.options[this.options.selectedIndex].value">
  <option value="index.php">Générations Star Wars : les forums</option>

Pas sûr que tu rentres dans ta fonction. Tu as vérifié ?
Je dis ca à cause du onChange="appel()’
avec un guillemet double devant et un simple derriere. C’est permis ?

Bonjour à tous :hello:
hum, je veux pas être méchant, mais c’est bizarre que personne n’ai remarqué qu’il y a une grosse erreur de compréhension: tu met du code dans une string, il ne va pas s’exécuter. le onChange appelle une fonction, et tu doit tout faire dans ta fonction, la valeur du retour n’est pas utilisée.
C’est la syntaxe de startide qu’il faut utiliser, éventuellement en la mettant dans la fonction donc soit:
solution 1


<form>
<select onChange="appel()">
...
</select>
</form>

<script language="JavaScript">
function appel() {
document.location.href='http://www.developpez.com';
}
</script>

soit, solution 2:


<form>
<select onChange="document.location.href=appel()">
...
</select>
</form>

<script language="JavaScript">
function appel() {
return 'http://www.developpez.com';
}
</script>