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 :

changer les options d'un select


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 125
    Points : 52
    Points
    52
    Par défaut changer les options d'un select
    Bonjour,

    Quelqu'un sait comment on ajoute /modifie les options dans un select?

    Je sais recupere la valeur du select mais pas ca.

    Merci,

  2. #2
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Moi j'utilise ces deux fonctions qui me permettent de supprimer et ajouter des options à volonté dans un select :

    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
    function insertOptionBefore(champReference,num,valeur,text)
    {  
        var elOptNew = document.createElement('option');
        elOptNew.text = text;
        elOptNew.value = valeur;
        var elOptOld = champReference.options[0];  
        try {
          champReference.add(elOptNew, elOptOld); 
        }
        catch(ex) {
          champReference.add(elOptNew,0); // IE
        } 
    }
     
    function removeOption(champReference,index)
    {       
          champReference.remove(index);
    }
    J'espère que ça t'aideras...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 125
    Points : 52
    Points
    52
    Par défaut
    Salut,

    alors si j'ai bien compris:

    champReference = l'id ou name du select
    num = ??
    valeur = la valeur qui prendra l'option
    text = text a afficher

    try = pour les nav standart
    catch = pour IE -> pourquoi un "0" dans les parenthese?

    je vais tester ca

  4. #4
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Citation Envoyé par shinrei
    champReference = l'id ou name du select
    Oui c'est ça

    Citation Envoyé par shinrei
    num = ??
    Oui je viens de m'apercevoir que num ne sert à rien...

    Citation Envoyé par shinrei
    valeur = la valeur qui prendra l'option
    text = text a afficher
    C'est ça!

    Citation Envoyé par shinrei
    try = pour les nav standart
    catch = pour IE -> pourquoi un "0" dans les parenthese?
    Ca c'est la vie...

  5. #5
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Si ca me reviens!

    num c'est pour remplacer le 0 justement

    C'est parce que moi je n'utilise cette fonction que pour insérer en tete de liste

    C'est l'indice dans la liste avant lequel tu veux insérer ton option en fait

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 125
    Points : 52
    Points
    52
    Par défaut
    C'est bon ca marche mais:

    je n'arrive à recupere le nombre d'element et ainsi supprimer ses options avant d'ajouter
    else {
    alert(document.getElementById('typeId').lenght);
    //OU
    alert(typeId.lenght);

    for (i=0;i<3;++i) {
    removeOption(typeId,i);
    }
    }
    Je crois que j'utilise mal le lenght non?

    Ca m'affiche 2 fois undefined

    EDIT:

    Bon ca marche un peu mieux mais (encore).
    Ca marche qu'une fois????? si je change une 2eme fois la selection de ItypeId , je ne change pas l'autre (typeId)

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    function insertOptionBefore(champReference,valeur,text)
    {  
        var elOptNew = document.createElement('option');
        elOptNew.text = text;
        elOptNew.value = valeur;
        var elOptOld = champReference.options[0];  
        try {
          champReference.add(elOptNew, elOptOld); 
        }
        catch(ex) {
          champReference.add(elOptNew,0); // IE
        } 
    }
    function removeOption(champReference,index)
    {       
    	alert('le champs '+ champReference.option[index] +' va disparaitre');
        champReference.remove(index);
    }
     
    function populateTypeList (ItypeId) {
    	if (ItypeId.value == 'Goods Sup.'){
    		var max = document.supcreate.typeId.length;
    		for (i=1;i<=max;++i) {
    			removeOption(typeId,i);
    		}
    		insertOptionBefore(typeId,'','');
    		insertOptionBefore(typeId,'Agent','Agent');
    		insertOptionBefore(typeId,'Manufacturer','Manufacturer');
    		insertOptionBefore(typeId,'Trader','Trader');
    		alert(document.supcreate.typeId.length);
    	}
    	else if (ItypeId.value == 'Service Sup.'){
    		var max = document.supcreate.typeId.length;
     
    		for (i=1;i<=max;++i) {
    			removeOption(typeId,i);
    		}
    		insertOptionBefore(typeId,'','');
    		insertOptionBefore(typeId,'Carrier','Carrier');
    		insertOptionBefore(typeId,'Hub / Forwader','Hub / Forwader');
    		alert(document.supcreate.typeId.length);
    	}
    	else {
    		var max = document.supcreate.typeId.length;
    		for (i=1;i<=max;++i) {
    			removeOption(typeId,i);
    		}
    		alert(document.supcreate.typeId.length);
    	}
    }

  7. #7
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Ca ca doit etre un autre probleme...
    Chez moi ces deux fonctions marchent très bien et autant de fois que nécessaire...
    A mon avis c'est un probleme de gestion d'evenement

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 125
    Points : 52
    Points
    52
    Par défaut
    C'est bon c'etait la fonction remove qui me faisait defaut.

    je donne pour ceux qui en ont besoin.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    function insertOptionBefore(champReference,valeur,text)
    {  
        var elOptNew = document.createElement('option');
        elOptNew.text = text;
        elOptNew.value = valeur;
        var elOptOld = champReference.options[0];  
        try {
          champReference.add(elOptNew, elOptOld); 
        }
        catch(ex) {
          champReference.add(elOptNew,0); // IE
        } 
    }
     
    function effacer() {
     document.supcreate.typeId.options[document.supcreate.typeId.length-1] = null;
    }
    function populateTypeList (ItypeId) {
    	if (ItypeId.value == 'Goods Sup.'){
    		var max = document.supcreate.typeId.length;
    		var i =1;
    		while (i<(max+1)){
    			effacer();
    			++i;
    		}
    		insertOptionBefore(typeId,'Trader','Trader');
    		insertOptionBefore(typeId,'Manufacturer','Manufacturer');
    		insertOptionBefore(typeId,'Agent','Agent');
    		insertOptionBefore(typeId,'','');
    	}
    	else if (ItypeId.value == 'Service Sup.'){
    		var max = document.supcreate.typeId.length;
    		var i =1;
    		while (i<(max+1)){
    			effacer();
    			++i;
    		}
    		insertOptionBefore(typeId,'Hub / Forwader','Hub / Forwader');
    		insertOptionBefore(typeId,'Carrier','Carrier');
    		insertOptionBefore(typeId,'','');	
    	}
    	else if (ItypeId.value == ''){
    		var max = document.supcreate.typeId.length;
    		var i =1;
    		while (i<(max+1)){
    			effacer();
    			++i;
    		}
    	}
    }
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Alignement de variables dans les <option> d'un <select>
    Par Crowell dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/07/2007, 17h42
  2. comment Récupéré tous les options d'un select ?
    Par maximenet dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/03/2006, 15h59
  3. récupérer toutes les Options d'1 select
    Par javaSudOuest dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/12/2005, 08h37
  4. cacher les options d'un select
    Par soony dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/09/2005, 10h05
  5. Réponses: 2
    Dernier message: 04/02/2005, 13h23

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