11497 sujets

JavaScript, DOM et API Web HTML5

Bonjour les amis,

J'ai besoin de votre aide car j'ai un exercice à faire qui consiste à modifier dynamiquement le contenu d'une liste déroulante. La première liste est classique et le contenu de la seconde est réaffecté dès que l'on agit sur la première.

Le problème est que lorsque je teste j'ai ce message d’erreur : upload/1485840416-63852-capturedaeacran2017-01-31aa06.png upload/1485840434-63852-capturedaeacran2017-01-31aa06.png

voi-ci mon script et merci d'avance:



<select name="Rubrique" onChange='Choix(this.form)'>
        <option>-- Choisissez une rubrique ---</option>
        <option>Plongée</option>
        <option>Nucléaire</option>
        <option>Bonheur</option>
        </select>



        <select name="Page">
        <option>-- Choisissez une page ---</option>
        <option></option>
        <option></option>
        <option></option>
        </select>







function Choix(form) {
i = form.Rubrique.selectedIndex;
if (i == 0) {
  return;
  }
switch (i) {
case 1 : var txt = new Array ('Matériel','Poissons','Sécurité'); break;
case 2 : var txt = new Array ('Radioactivité','Information','Mesures'); break;
case 3 : var txt = new Array ('Philosophie','Psychologie','Humour'); break;
}
form.Rubrique.selectedIndex = 0;
for (i=0;i<3;i++) {
  form.Page.options[i+1].text=txt[i];
  }
} 

Modifié par DiegoGaby (31 Jan 2017 - 06:35)
Modérateur
Bonjour,

Au risque de dire une bêtise, il me semble que votre code est mal renseigné dans la mesure ou côté html vous définissez
<select name="Rubrique" onChange='Choix(this.form)'>
Ce qui signifie :
Un élément Select avec sur l'évènement onChange l'application de la fonction Choix().
A cette fonction vous envoyez en paramètre 'this.form' soit "l'élément form enfant de l'élément "this" (soit le select).

Du coup impossible de trouver l'élément form dans la fonction Choix() ce qui explique pourquoi il ressort comme étant null.

Je ne suis pas sûr non-plus que même en corrigeant ça, le select Page puisse être incrémenté de cette façon. De mémoire il me semble que le forum contient un sujet fort semblable dont vous pourrez vous inspirer.

Bonne continuation ! Smiley smile
Hello...

en effet c'est un problème d'envoi de données...

pour un on change sur un select on envoi plutot sa valeur Smiley smile

donc this.value Smiley lol