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 :

Griser 1 liste déroulante liée à une autre, pb de concaténat


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut Griser 1 liste déroulante liée à une autre, pb de concaténat
    Bonjour,

    J'ai plusieurs listes déroulantes, fonctionnant 2 par 2.
    En fonction de la valeur d'une variable x, mes listes déroulantes s'appellent :
    x=1 --> type1 et geno1
    x=2 --> type2 et geno2
    ...

    Lorsque je choisi une valeur dans la 1ere, si elle est égale a 'autre', je veux désactiver ma 2eme liste déroulante.

    Sur la 1ere liste, j'ai onChange : test_val(x)

    et voila le code de ma fonction test_val:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function test_val(param){
    if (document.getElementById(\'type'+param+'\').options[document.getElementById(\'type'+param+'\').selectedIndex].text=='autre') 
    { 
      alert('ok');
      alert ('2eme liste : document.form.geno'+param+'.disabled = true');
    } 
    else 
    { 
      alert('pas ok');
    }
    }
    Le test marche bien, puisque les messages "ok" et "pas ok" s'affiche aux moments voulu, c'est a dire que "ok" s'affiche quand "autre" est sélectionné dans la 1ere liste, sinon, "pas ok" s'affiche.

    D'apres ce que j'ai trouvé sur un autre forum (http://www.webrankinfo.com/forums/viewtopic_11523.htm), il faut bien utiliser la proprieté disabled.

    Ceci semble s'afficher correctement, mais comment le faire executer?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      alert ('2eme liste : document.form.geno'+param+'.disabled = true');
    J'ai essayer de mettre directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.form.geno+param+.disabled = true;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'document.form.geno'+param+'.disabled = true';
    mais la concatenation pose un probleme.
    Sans une de ces 2 lignes, le code javascript s'execute normalement. Si une des 2 est présente, plus de javascript et il y a le message d'erreur "Erreur de syntaxe".

    Est ce que quelqu un voit comment faire?

    Merci d'avance pour votre attention.
    Linou

    PS : J'ai bien vu le post ce post sur les listes déroulantes liées entre elles, mais la solution ne se trouve pas la.

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.form.elements['geno'+param].disabled = true;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    Je viens d'essayer.

    Lorsuqe je ne choisie pas la valeur "autre", tout se passe bien, plus d'erreur.

    Lorsque je choisie "autre, les popups s'affichent bien. Au moment de l'execution de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.form.elements['geno'+param].disabled = true;
    , l'erreur suivante apparait :
    'document.form.elements' a la valeur Null ou n'est pas un objet

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    ton formulaire ne s'appele pas
    form
    !
    utilise
    forms[0]
    ou la fonction eval!

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    [quote="Matthieu2000"]ton formulaire ne s'appele pas form[/form]
    Effectivement, j'ai toujours tendance à mélanger from et forms...

    J'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.tab_liste.elements['geno'+param].disabled = true;
    et ca marche parfaitement.

    Merci Matthieu2000.

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

Discussions similaires

  1. MAJ liste déroulante depuis une autre liste
    Par airbeone dans le forum Langage
    Réponses: 1
    Dernier message: 15/01/2008, 17h41
  2. Liste déroulante liée à une base de donnée
    Par GruZloR dans le forum Excel
    Réponses: 4
    Dernier message: 05/01/2008, 16h55
  3. Réponses: 7
    Dernier message: 03/12/2007, 15h37
  4. [Access] Filtrer une liste déroulante depuis une autre
    Par Marie_2116 dans le forum Access
    Réponses: 20
    Dernier message: 24/08/2007, 17h19
  5. [MySQL] Liste déroulante liée à une table
    Par fraisoo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/02/2007, 06h20

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