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 () ne cible pas l'objet


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut getElementById () ne cible pas l'objet
    Bonjour,

    J'ai un petit problème avec cette fonction, elle ne récupère pas mon élément.

    voila le code de ma fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        function Count(text, lon, textBox) 
        {
            var maxlength = new Number(lon);
     
            if(document.getElementById(textBox).value.length > maxlength)
            {
                        text.value = text.value.substring(0,maxlength);
                        alert(" Only " + lon + " chars");
            }
        }
    J'appelle cette fonction lorsque l'utilisateur ajoute ou enlève un caractère dans un textbox. Je pense que le problème vient du fait que j'utilise la fonction dans un user control .ascx affiché sur une page .aspx. (je développe donc en C#)
    Il faut peut etre changer le parametre "document" ?

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Je ne suis pas certain du value.length sur ton document.getElementById

    Un document.getElementById(textBox).length devrait suffir non ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    J'ai testé, et non. Ca ne change rien.
    Mon erreur est "Object Required"

    Ce code marche bien dans une page aspx simple. Je pense que c'est vraiment un problème avec le getelement

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    tu peux nous montrer le html de l'objet visé ???
    il a bien un id ... la casse est respectée lors du passage de paramètre ?
    il n'y a qu'un objet avec cet id sur la page ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par tusssss Voir le message
    Je ne suis pas certain du value.length sur ton document.getElementById

    Un document.getElementById(textBox).length devrait suffir non ?
    Non non : c'était bien ça (c'est la value qui est une string, pas l'objet lui-même).

    Par contre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function Count(text, lon, textBox) 
        {
            var maxlength = new Number(lon);
     
            if(document.getElementById(textBox).value.length > maxlength)
            {
                        text = text.substring(0,maxlength);
                        alert(" Only " + lon + " chars");
            }
        }
    Une variable n'a pas de propriété value : elle représente elle-même la value ...

    ... et il est possible de trouver des noms de variables plus clairs et moins ambigües que "text"

    A+

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    Voila comment le l'appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                <tr>
                    <td>
                        Comment Employee
                    </td>
                    <td>
                        <asp:TextBox ID="tbCommentEmployee" 
                            textmode="MultiLine" Rows="5" runat="server" 
                            onKeyUp="javascript:Count(this, 100,'tbCommentEmployee');" 
                        onChange="javascript:Count(this, 100,'tbCommentEmployee');"></asp:TextBox>
                    </td>
                </tr>
    Il n'y a biensur qu'un control avec cet ID. Je ne met pas tout ma page, elle fait plus de 250 lignes.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    oui comme le souligne Ebzz .. il faudait que nous en sachions un peu plus sur les paramètres ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    Les paramètres :
    Text : Texte de la textbox
    lon : nombre de caractère maximum
    Textbox : id de ma textbox

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    oui comme le souligne Ebzz .. il faudait que nous en sachions un peu plus sur les paramètres ???
    Je corrigeais juste l'utilisation de la variable qui était fausse (variable.value).

    Ce n'était peut être que ça le problème

    A+

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    @Titi41 > Tu as corrigé ça ?

    A+

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ben déja il y a un paramètre en trop ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function Count( lon, textBox) 
        {
            var maxlength = new Number(lon);
            var text=document.getElementById(textBox).value;
            if(text.length > maxlength)
            {
                        document.getElementById(textBox).value = text.substring(0,maxlength);
                        alert(" Only " + lon + " chars");
            }
        }
    pas besoin de passer l'id et le texte ...

    Ensuite au niveau ergonomie imagine que le gars fasse une insertion en mileu de chaîne ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    ca ne marche toujours pas.. Sinon, est-ce qu'il y a une meilleure fonction déjà existante ? Si ce n'est pas ergonomique.

  13. #13
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Titi41 Voir le message
    ca ne marche toujours pas..
    Si les autres ont compris où tu en étais dans tes modif, ils sont forts

    => ton code actuel ??

    A+

  14. #14
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    Oui, désolé

    En fait, j'ai repris le code de SpaceFrog

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function Count( lon, textBox) 
        {
            var maxlength = new Number(lon);
            var text=document.getElementById(textBox).value;
            if(text.length > maxlength)
            {
                        document.getElementById(textBox).value = text.substring(0,maxlength);
                        alert(" Only " + lon + " chars");
            }
        }

  15. #15
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    OK !

    Alors : résultat (à part que "ça marche pas") ?
    Erreur ?

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type='text/javascript'>
    function Verif(Obj,MaxL){
    		var Texte=Obj.value;
           if(Texte.length > MaxL){
                        Obj.value = Texte.substring(0,MaxL);
                        alert(" Only " + MaxL + " chars");
            				}
            }
    </script>
     
    <title>Nouvelle page 1</title>
    </head>
    <body>
    <input type='text' onkeyup="Verif(this,5)" value='test' />
    Sinon sans javascript mais sans message d'alerte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type='text' maxLength="5"  value='test' />
    ou avec une alerte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type='text' maxLength="5" onkeydown="if(this.value.length==this.maxLength){alert('Only '+this.maxLength+' chars')}" value='test' />
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    Toujours le meme problème, objet non trouve sur la ligne du GetElementbyID.
    Ensuite, Lenght is null

  18. #18
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    Je prefererai rester avec des controls asp. Et avec les controls asp, si on ajoute le mode "MultiLine", il ne gère plus la proriété maxlength

  19. #19
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    titi tu as testé mon code ...
    ???

    il tourne parfaitement chez moi ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  20. #20
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    Ca ne marche pas chez moi. Je pense vraiment que le problème vient du user control. Et il ne trouve pas ma text box.
    la variable "document" fait référence à la page ?
    Il n'est pas possible de faire référence au user control ?

Discussions similaires

  1. a la valeur Null ou n'est pas un objet et getElementById
    Par adroussel dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 13/01/2010, 01h22
  2. Document.form... n'est pas un objet
    Par mcbrett dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/01/2006, 09h38
  3. Réponses: 2
    Dernier message: 07/09/2005, 09h55
  4. librairie introuvable! Erreur"Pas d'objet dans ce contr
    Par vins111282 dans le forum Access
    Réponses: 5
    Dernier message: 16/05/2005, 14h07

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