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 :

[DOM] liste déroulante et erreur ".selectedIndex has no properties


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Par défaut [DOM] liste déroulante et erreur ".selectedIndex has no properties
    Bonjour,

    J'ai un menu déroulant qui est généré dynamiquement.

    Voilà ce que ca donne une fois généré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <select id="PAYS_ID" class="field" tabindex="18" name="PAYS_ID">
    <option value="-1">......choix pays......</option>
    <option value="17"> Allemagne </option>
    <option value="20"> Argentine </option>
    <option value="43"> Australie </option>
    ...
    </select>
    Je voudrai récupérer la valeur de la selection, donc je fais en js:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var sel = maform.elements[champ].options[maform.elements[champ].selectedIndex].value;
    alert(sel);
    donc ca marche bien si je met tout ca dans un fichier test.html.

    Par contre, si je met ca dans mon formulaire contenant d'autres bouton avec laquel je parcoure avec une boucle tous les champs pour les récupérer, et une fois arriver au menu select, j'ai fais comme le code ci-dessus mais j'obtiens une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maform.elements[champ].selectedIndex has no properties
    Et voici ma boucle qui parcoure tous les champs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(var champ = 0; champ<maform.elements.length;champ++) 
    {
     .....
    var sel = maform.elements[champ].options[maform.elements[champ].selectedIndex].value;
    alert(sel);
    }

    merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Par défaut
    Salut,
    Je te conseille d'utiliser les méthodes du DOM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sel = getElementById(champ).options[getElementById(champ).selectedIndex].value;
    en parcourant les id du formulaire

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Par défaut
    salut,

    j'ai essayé avec un getElementById mais j'obtiens comme erreur
    getElementById is not defined

    j'ai aussi essayé avec un document.getElementById qui ne marche pas non plus.

    Mon formulaire se trouve dans une iframe pour précision.


    en parcourant les id du formulaire
    je ne comprend pas trop la différence avec ce que j'ai fais


    pour info:

    quand je fais alert(maform.elements[champ].name) j'arrive à obtenir le name du menu déroulant
    mais quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(maform.elements[champ].name.options[maform.elements[champ].name.selectedIndex].value);
    j'obtiens cette erreur:
    maform.elements[champ].name.selectedIndex has no properties

  4. #4
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Bonjour


    Je voudrai récupérer la valeur de la selection
    Moi, j'ai l'habitude de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sel=document.getElementById("PAYS_ID").value
    Mais document est un sous-objet de l'objet window (objet par défaut) . Si ton formulaire est dans un iframe, faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sel=document.frames("monIframe").document.getElementById("PAYS_ID").value;


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Par défaut
    Autant pour moi, j'avais oublié d'inscrire le getElementById dans document.

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Par défaut
    ok ca marche niquel merci.

    le truc c'est que je ne peux pas mettre directement PAYS_ID dans le getElementById, d'où l'utilisation de ma boucle pour parcourir tous les éléments de ma form.

    donc voilà, quand je fais:

    sel=document.getElementById(maform.elements[champ].name).value
    j'ai l'erreur
    document.getElementById(maform.elements[champ].name) has no properties

    mais pas si je met directement "PAYS_ID"

    [EDIT]
    c'est réglé grâce à mon autre topic:
    http://www.developpez.net/forums/sho...d.php?t=401420

  7. #7
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    desolé je me suis trompé de rubrique

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

Discussions similaires

  1. [DOM] liste déroulante avec items transparents
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/12/2011, 17h16
  2. Réponses: 10
    Dernier message: 13/10/2008, 18h07
  3. [DOM] listes déroulantes dynamiques et passage de paramètres
    Par sorcade dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/09/2008, 11h07
  4. [DOM] Listes déroulantes dépendantes
    Par L'aigle de Carthage dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 13/05/2008, 17h50
  5. selectedIndex has no properties (firefox)
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/09/2007, 09h23

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