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 :

removeAttribute("disabled") d'une option d'un select


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Points : 53
    Points
    53
    Par défaut removeAttribute("disabled") d'une option d'un select
    Bonjour,
    Voici mon probléme j'ai deux miltiselects:Genre et nom dans lesquels si je choisis 1 element de chaque et je valide ,j'ai un tableau qui se crée avec sur chaque ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Numero          Genre            Nom            Suppresion
    1                 Alimentaire        Lait            Bouton supp
    2                 Vetement          Jupe           Bouton supp
    3                 Vetement           robe          Bouton supp
    Et en cliquant sur une option du select genre j'ai les noms associés qui sont disabled dans le select nom donc on ne pourra plus les ajouter avec le meme genre.
    Je veux quand je supprime à chaque fois une ligne de mon table, que le nom qui était disabled dans le select quand je l'ajouter redevient normale removeAttribute(disabled) donc selectionnable:
    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
     
              function estDansSelection (genre,nom){
                    var vretun=false;
                    var val=0;
                    while((vretun == false) && (val < variablGlobal.length)){
                        vretun =(variablGlobal[val][0]== genre)&& (variablGlobal[val][1]== nom);
                        val++;
                    }
                    return vreturn;
              }
     
     
     
              function changeCouleur(){
                    var objGenre = document.getElementById("select_genre");
                    var genre = objGenre.options[objGenre.options.selectedIndex].text;
                    var vObjNom = document.getElementById("select_nom") ;
                    for(var i = 0; i < vObjNom.options.length; i++)
                    {
                         var genre= vObjNom.options[i].text;
                         if( estDansSelection(genre, nom))
                         {
                                  vObjNom.options[i].setAttribute("disabled","disabled");
                         }
                         else{
                             vObjNom.options[i].removeAttribute("disabled");
                         }
                    }
              }
    Aidez moi svp je veux quand je supprime une ligne que le nom qui était disabled dans le select redevient enable.
    Merci de votre Aide!!

  2. #2
    Membre régulier Avatar de vrd-74
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 102
    Points
    102
    Par défaut
    Salut

    La balise option n'accepte pas l'attribut disabled. La balise optgroup par contre, si. Si le rendu visuel ne te convient pas (y a moyen), il serait peut être mieux de tout simplement retirer l'option du select, puis de la remettre lors du clic sur "supprimer".

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Points : 53
    Points
    53
    Par défaut
    On ma dit que l'option ne doit pas etre supprimé mais bien visible et pas selectionnable .
    Pourtant quand je choisis 1 element de chaque select et que je l'ajoute dans mon tableau j'ai bien l'option qui est grisée et disabled je n'arrive plus à selectionner.Par contre lors de la suppression j'ai fait un removeAttribute("disabled")

  4. #4
    Membre régulier Avatar de vrd-74
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 102
    Points
    102
    Par défaut
    D'après w3schools la balise option gère bien l'attribut disabled, je ne pensais pas. Je m'en coucherai moins bête.

    Quand tu regardes avec firebug (ou autre inspecteur dom suivant ton navigateur), l'attribut a t-il bien disparu de l'option ? Si non, ça veut dire que ta condition estDansSelection retourne toujours true.

  5. #5
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Points : 53
    Points
    53
    Par défaut
    j'ai tjrs le disabled dans mon option car il esy tjrs grisée
    Je ne vois vraiment pas ce qui ne va pas!!!

  6. #6
    Membre régulier Avatar de vrd-74
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 76
    Points : 102
    Points
    102
    Par défaut
    Essaye d'ajouter un alert dans ton else pour vérifier qu'il rentre bien dedans.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Tout d'abord, l'attribut disabled est bien déconseillé pour une option car non compatible avec IE<8.

    Ensuite, ce type d'attribut est un peu particulier car géré différemment par HTML et JavaScript.
    Habituellement, lors de la construction du DOM, une liaison est faite entre les attributs standards d'une balise et ses propriétés JavaScript.
    Or pour disabled (comme checked par exemple) cette liaison n'est pas parfaite, il est donc préférable de les modifier via le DOM :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vObjNom.options[i].disabled = true;    // ou false
    Pour JavaScript, la valeur est un booléen

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