IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Liste déroulante chainée : problème avec value


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Par défaut Liste déroulante chainée : problème avec value
    Bonjour,

    J'essaie d'implémenter une fonction qui permet lordsque l'on clique sur une liste, qu'une seconde soit mise à jour.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function ShowURL(form)
    {
    	i = form.site_id.selectedIndex;
    	if (i == 0) { return; }
    	switch (i)
    	{
    		case 1 :
    			var urls_id = new Array(1,2,3);
    			var urls = new Array('a.htm','b.htm','c.htm');
    			break;
    		case 2 :
    			var urls_id = new Array(4,5,6,7);
    			var urls = new Array('d.htm','e.htm','f.htm','g.htm');
    			break;
    	}
    	for (i=0; i<2; i++)
    	{
    		form.url_id.options[i+1].value=urls_id[i];
    		form.url_id.options[i+1].text=urls[i];
    	}
    }
    //-->
    </script>
    Ca fonctionne à moitié. En effet, lors d'un choix dans la liste 1, la liste 2 est mise à jour avec le tableau urls[i].
    Ainsi la liste qui au préalable est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <option></option>
    <option></option>
    <option></option>
    <option></option>
    <option></option>
    devient dans le cas du choix 2 dans la liste 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <option>d.htm</option>
    <option>e.htm</option>
    <option>f.htm</option>
    <option>g.htm</option>
    <option></option>
    Or je voudrais qu'elle devienne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <option value="4">d.htm</option>
    <option value="5">e.htm</option>
    <option value="6">f.htm</option>
    <option value="7">g.htm</option>
    <option></option>
    Apparemment ce code form.url_id.options[i+1].value=urls_id[i]; ne fonctionne pas.

    A l'aide.

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Tu peux faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     // effacer tous les options d'abord pour être sûr
      for(int i=0;i<form.url_id.options.length;i++) {
         form.url_id.options[i]=null;
      }
     
      //Créer les options et les ajouter dans ta boucle comme ceci :  
      form.url_id.options[i] = new Option("ton text","ta value");

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/05/2015, 21h30
  2. Réponses: 2
    Dernier message: 30/01/2010, 12h16
  3. problème avec "value" et l'intégrité d'une chaine.
    Par pipercub dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 24/11/2009, 16h42
  4. problème de listes déroulantes liées dynamiques avec jsp
    Par solfegepro dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 09/08/2007, 17h11
  5. liste déroulante en relation avec un autre formulaire
    Par nicolovitch dans le forum Access
    Réponses: 1
    Dernier message: 20/07/2006, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo