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 :

getElementById en variable


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 71
    Points : 56
    Points
    56
    Par défaut getElementById en variable
    Bonjour à tous,

    Je demande votre aide pour une question sans doute "bête" pour vous.
    Comment fait-on pour mettre en variable le nom d'un objet ?

    Je m'explique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var name_element = document.getElementById('<%= Txt_Date.ClientID %>');
    var sString = name_element.value;
    fonctionne et je peux récupérer la valeur. Mais je voudrais mettre "Txt_Date" en variable du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var mon_form='Txt_Date'
    D'avance merci.

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Je ne suis pas sûr d'avoir compris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var mon_form= "<%=Txt_Date %>"
    Cependant, vous n'allez pas récupérer le même objet que vote objet Java (ce sont des JSP ?).

  3. #3
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    Je suis un débutant alors soyez indulgent.
    En fait, j'ai plusieurs textbox où l'on doit indiquer des dates et je ne veux utiliser qu'une fonction pour vérifier la cohérence de ces dates.

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:TextBox ID="Txt_Date" runat="server" onblur="javascript:Saisie_Date()" 
                              onkeyup="javascript:KeyUp('Txt_Date')" ></asp:TextBox>

    Quand je rentre dans ma fonction KeyUp(), je ramène l'ID du Textbox que je veux passer en variable.

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Vous désirez ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function KeyUp(monID){
       var maDate = document.getElementById(monID).value;
    }

  5. #5
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    Avant tout merci de votre réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function KeyUp(Nom_Obj) {
                var maDate = document.getElementById(Nom_Obj).value;
                alert(maDate ); // me renvoie erreur sur la page           
            }
    Par contre en mettant en dur dans le code cela fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function monAction() {
                var name_element = document.getElementById('<%= Txt_Date.ClientID %>');
                var sString = name_element.value;
                alert(sString);
     
            }
    J'ai dû mal à cerner le problème.
    Merci encore

  6. #6
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Est-ce que Nom_Obj contient bien un id ?


  7. #7
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    Tout à fait.
    à chaque pression d'une touche j'obtiens bien Txt_Date.
    Jusque là c'est Ok
    Merci

  8. #8
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Arf oui, je ne sais pas en quoi sont transformés les TextBox. Pourriez-vous nous montrer le code HTLM généré ?

    Ceci convient peut-être mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var maDate = document.getElementById(Nom_Obj).innerHTML;

  9. #9
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    Le problème vient du "ClientID"
    Si je mets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var Nom_Obj = '<%= txt_date.ClientID %>';
    var vValeur = document.getElementById(Nom_Obj).value;
    alert(vValeur );
    J'obtiens bien les valeurs de ce fou.. Textbox.

    Si j'essaie ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var testName ='txt_date';
    var testCntrl = document.getElementById('<%=' + testName + '.ClientID %>');
    Erreur: CS1012: Too many characters in character literal

  10. #10
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    C'est normal. Vous confondez le langage serveur et le langage client. Comme je le disais tout à l'heure, en récupérant 'txt_date' dans une variable JavaScript, vous n'obtenez pas un objet ASP.

    La variable testName est une chaine de caractères. Vous ne pouvez pas lui appliquer un .ClientID.

  11. #11
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    Merci!

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

Discussions similaires

  1. getElementById et variable en parametre
    Par Canabal dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/10/2012, 11h55
  2. getElementById avec string+variable
    Par oaouh dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 05/06/2007, 16h37
  3. mettre une variable ds document.getElementById('')?
    Par zorba49 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 27/06/2006, 16h30
  4. Variable dans getElementById
    Par phpmikedu83 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/11/2005, 19h04

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