j'ai un petit problème à vous soumettre : je ne sais pas pourquoi, mais je ne parvient pas à récupérer la valeur d'un select en javascript. Le pire, c’est que j'ai un autre select à côté qui fonctionne lui correctement.
Pour récupérer la valeur d'un select, il faut que tu créer une fonction qui sera appelé lors de l'événement onchange() de ton select. C'est cette balise qui contiendra la nouvelle valeur choisie, les option ne sont là que pour attribuer les valeur à ton select.
Dans ton JavaScript, tu vas devoir récupérer l'élément correspondant à ton select. Donc l'idéal, c'est de passer par un getElementById(). Une fois que c'est fait, tu peux récupérer la valeur d'un indice en utilisant la méthode .selectedIndex. La méthode select.options contient un tableau qui correspond à chaque option, tu vas devoir chercher l'indice correspondant dans ce fameux tableau.
en fait ce que je cherche à récupérer est bien la value de chaque option. Dans ton exemple, si l'utilisateur choisit "Mazda 3", je veux avoir la valeur "mazda3".
est-ce-qu'un getElementById(alias).value ne suffit pas ? ca fonctionne sur un autre select de la même page mais pas sur celui dans l'exemple.
En fait, si la fonction ne se déclenche pas pour la première valeur, c'est parce que l'événement onchange ne s'est pas déclenché. En effet, il n'y a pas eu de onchange, de changement donc car la première valeur mazda3 est déjà enregistré dans le select.
Une solution pour récupérer d'entrée de jeux la première valeur (si l'utilisateur choisi la Mazda 3) serait de créer une fonction anonyme qui sera lancée quand ton document sera chargé et qui appelera une première fois ta fonction :
( function() {
choix();
})();
Du coup ça donne ça (j'utilise désormais le console.log() pour que ça soit moins intrusif).
Tu remarqueras qu'au début, sans séléction, c'est mazda3 qui est affiché dans la console. C'est ce que je t'avais dit : en fait le select va prendre la première valeur dès le début. Donc hypothétiquement, tu pourrais envoyer ton formulaire sans même sélectionner une autre valeur.
Après bien sûr, tu pourrais retrouver la première valeur avec un document.getElementById("identifiantSelect").value; mais ma fonction le fait déjà (à peu de choses près) donc je la réutilise. Tu t'organises comme tu le souhaites. Le plus important, c'est cette fonction anonyme pour pouvoir récupérer la première valeur si tu utilise une fonction. Tu peux aussi ajouter la ligne que tu as donné directement. Ça revient à peu près au même.
Merci pour votre aide. Je parviens maintenant à récupérer la valeur de mon select sur les départements en utilisant la fonction de CedricDeMartin. Mais je dois vraiment avoir un problème sur mon select, car je ne parviens pas à modifier un select identique situé plus loin (avec un id différent bien sûr).
Si je veux attribuer à un select la valeur d'un autre select, un simple
c'est bon, je parviens maintenant à récupérer la valeur d'un select et à l'affecter à un autre select. merci à tous les 2 pour votre aide.
Une dernière question pour vous embêter :
J'ai 3 input avec le même name. Le contenu de ces input est modifié dynamiquement par javascript (comme vu dessus) pour que chaque input ait le même contenu. Mais lorsque j'enregistre mon formulaire, il n'enregistre la valeur que si je remplis le dernier input. Si je remplis le 1er ou le 2e, le champ du 3e prend la bonne valeur mais ne s'enregistre pas.
Le .value javascript ne remplit pas correctement l'input pour enregistrement ?
Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)