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

sarrjo Messages postés 6 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 21 novembre 2010 - 20 nov. 2010 à 01:27
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 21 nov. 2010 à 22:05
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 :


Numero Genre Nom Suppresion
1 Alimentaire Lait Bouton
2 Vetement Jupe Bouton
3 Vetement robe Bouton


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 :

          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!!

9 réponses

ChasseurDeChimeres Messages postés 292 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 15 janvier 2013 3
20 nov. 2010 à 12:05
Salut;
As tu essayé de rajouter à la balise "option" un attribut "disabled='disabled'"?
que tu modifies par la suite comme ça :
document.getElementById('option_id').disabled = ""; 

c'est juste une idée
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
20 nov. 2010 à 23:34
Bonjour,
je veux quand je supprime une ligne que le nom qui était disabled dans le select redevient enable.
oSelect.options[index].disabled = true;

mais j'ai peur qu'il soit true ou false il soit selectionnable sous IExplorer.

;O)
0
ChasseurDeChimeres Messages postés 292 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 15 janvier 2013 3
21 nov. 2010 à 11:50
Merci Petole (pour les corrections et la patience)^^.
0
sarrjo Messages postés 6 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 21 novembre 2010
21 nov. 2010 à 17:00
J'ai essayé mais ça ne marche pas.
je veux quand je supprime une ligne que le nom qui était disabled dans le select redevient enable.
Je ne sais pas ce qui ne vas pas dans ma fonction.
Qu'est ce que je dois écrire dans ma fonction pour que quand je vais l'appeler lors de la suppression d'une ligne l'option redevient enable.
J'ai l'impression que m'a fonction ne rentre pas dans le else.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
21 nov. 2010 à 17:12
Bonjour,
concernant la fonction changeCouleur()
function changeCouleur() {
  var objGenre = document.getElementById("select_genre");
  //-- SERT à QUOI ??? redefini plus loin !
  var genre = objGenre.options[objGenre.options.selectedIndex].text;

  var vObjNom = document.getElementById("select_nom");
  for (var i = 0; i < vObjNom.options.length; i++) {
    //-- REDEFINITION de genre ????
    var genre = vObjNom.options[i].text;
   
    //-- le 2nd parametre nom est défini OU ????
    if (estDansSelection(genre, nom)) {
      vObjNom.options[i].setAttribute("disabled", "disabled");
    }
    else {
      vObjNom.options[i].removeAttribute("disabled");
    }
  }
}
les questions sont dans le code.
;O)
0
sarrjo Messages postés 6 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 21 novembre 2010
21 nov. 2010 à 18:58
function changeCouleur() {
  var objGenre = document.getElementById("select_genre");
 //-- Renvoie le texte du genre selectionné
var Genre =objGenre.options[objGenre.options.selectedIndex].text
  var vObjNom = document.getElementById("select_nom");
  for (var i = 0; i < vObjNom.options.length; i++) {
    //-- Renvoie le texte des noms sélectionnés
    var nom = vObjNom.options[i].text;
   
    if (estDansSelection(genre, nom)) {
      vObjNom.options[i].setAttribute("disabled", "disabled");
    }
    else {
      vObjNom.options[i].removeAttribute("disabled");
    }
  }
}




Voila exactement ce que j'ai fait et j'ai juste appelé cette fonction changeCouleur();
juste après ma fonction supprimer();
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
21 nov. 2010 à 21:12
attention au case sensitive Genre est différent de genre, de même dans la fonction estDansSelection()
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 vretun; // vretun et NON vreturn
}

J'ai l'impression que m'a fonction ne rentre pas dans le else
as tu essayé de mettre un alert dans la condition else pour lever le doute ??
;O)
0
sarrjo Messages postés 6 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 21 novembre 2010
21 nov. 2010 à 21:35
je me suis trompée Genre = genre c'est la meme chose.
et j'ai mis return vretun.Ceux sont de erreurs de copie .
L'alert dans le else ne donne rien.Si je supprime un element il ne se passe rien.
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
21 nov. 2010 à 22:05
L'alert dans le else ne donne rien
dans ce cas 2 solutions
- soit la condition est toujours VRAI, ce qui me paraît à priori peu probable, sauf si il y a une mauvaise initialisation de variablGlobal
- soit il y à une erreur dans le script qui met fin à la fonction, voir la console d'erreur, mais n'ayant pas une vue globale ???

Je te rappelle qu'avec IExplorer le disabled sur une option n'aura aucun effet. Il te faut peut être faire une autre approche.

;O)
0
Rejoignez-nous