par
ynx » 28 juil. 2021, 17:04
Le problème vient de la récupération de l'option sélectionnée au chargement de la page.
Ce qui fonctionne :
Dans la fonction onchange appliqué sur le select, on récupère l'option sélectionnée grâce à l'instruction var selectedOption = event.target.value;
Dans cette instruction, "event" correspond à l'évènement déclenché lorsque l'élément change (onchange), "event.target" correspond à l'élément qui a changé (la balise select) et "event.target.value" retourne la valeur de l'élément qui a changé.
On récupère donc la valeur (value) de l'élément qui a changé (event.target). Cet élément est bien la balise html select puisque la fonction onchange est appliqué sur cet élément via select.onchange=...
Ce qui ne fonctionne pas :
Dans la fonction onload déclenchée au chargement de la page, "event" correspond à l'évènement déclenchée lorsque la page est chargée (DOMContentLoaded), "event.target" correspond alors au document html qui a été chargé (puisque la fonction onload est appliqué sur l'élément document via l'instruction document.addEventListener()).
On ne peut donc pas utiliser l'instruction event.target.value car on cherche alors à récupérer la valeur du document html, ce qui n'a pas de sens.
Dans la fonction déclenchée au chargement de la page, il faut donc cibler directement la balise select pour en récupérer la valeur. Un exemple avec getElementById() pour récupérer l'élément select :
document.addEventListener('DOMContentLoaded', function(event) {
var selectedOption = document.getElementById('liens').value;
// [...]
Le problème vient de la récupération de l'option sélectionnée au chargement de la page.
Ce qui fonctionne :
Dans la fonction onchange appliqué sur le select, on récupère l'option sélectionnée grâce à l'instruction var selectedOption = event.target.value;
Dans cette instruction, "event" correspond à l'évènement déclenché lorsque l'élément change (onchange), "event.target" correspond à l'élément qui a changé (la balise select) et "event.target.value" retourne la valeur de l'élément qui a changé.
On récupère donc la valeur (value) de l'élément qui a changé (event.target). Cet élément est bien la balise html select puisque la fonction onchange est appliqué sur cet élément via select.onchange=...
Ce qui ne fonctionne pas :
Dans la fonction onload déclenchée au chargement de la page, "event" correspond à l'évènement déclenchée lorsque la page est chargée (DOMContentLoaded), "event.target" correspond alors au document html qui a été chargé (puisque la fonction onload est appliqué sur l'élément document via l'instruction document.addEventListener()).
On ne peut donc pas utiliser l'instruction event.target.value car on cherche alors à récupérer la valeur du document html, ce qui n'a pas de sens.
Dans la fonction déclenchée au chargement de la page, il faut donc cibler directement la balise select pour en récupérer la valeur. Un exemple avec getElementById() pour récupérer l'élément select :
[JS]
document.addEventListener('DOMContentLoaded', function(event) {
var selectedOption = document.getElementById('liens').value;
// [...]
[/JS]