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 :

Changement de valeur d'un bouton


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Points : 114
    Points
    114
    Par défaut Changement de valeur d'un bouton
    Bonjour,

    Mon soucis est le suivant je voudrais savoir comment modifier la valeur d'un bouton lorsque l'on clique dessus. J'ai essayé de faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function modifButton(id)
    {
          document.getElementsByName(id).value = "valeurModif"
          alert(document.getElementsByName(id).value);
    }
    Alert m'affiche "Undefined" et meme quand je fais seulement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function modifButton(id)
    {
          alert(document.getElementsByName(id).value);
    }
    Le code du bouton est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><input type="button" name="15" value="?" onclick="modifButton(15)"/></td>
    Si quelqu'un aurait une méthode pour faire ça que je suis dessus depuis déjà un bon moment. Merci

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Essaye plutot avec 'getEmentById' en ajoutant un "id" à ton bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script language="javascript">
    function modifButton(id)
    {
          document.getElementById(id).value = "valeurModif";
          alert(document.getElementById(id).value);
    }
     
    </script>
    <input type="button" name="15" id="15" value="?" onclick="modifButton('15')"/>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut
    essaye comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <script>
    function modifButton(id)
    {
          document.getElementById(id).value = "valeurModif"
          alert(document.getElementById(id).value);
    }
    </script>
     
    </head>
     
    <body>
     
    <input type="button" name="15" id="15" value="" onclick="modifButton(15)"/>
    </body>
    </html>

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut
    j'suis toujours en retard moi...

    c'est un peu normal...

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    En dehors du fait que la solution getElementById est la meilleure ! Ton erreur vient du fait que getElementsByName, comme l'indique le s, renvoie une collection d'éléments ayant l'attribut name indiqué, or cette collection ne possède pas de propriété value. Pour accéder aux éléments eux-mêmes et donc à leur propriété value, il faut indiquer le numéro d'ordre de l'élément recherché :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementsByName(id)[0]
    !!!

    EDIT :
    Ceci dit, dans ton cas, tu peux faire plus simplement :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" name="15" value="?" onclick="modifButton(this)"/>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function modifButton(id)
    {
          id.value = "valeurModif";
          alert(id.value);
    }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Points : 114
    Points
    114
    Par défaut
    Merci de vos réponses j'avais penser c'est vrai avec id mais apparemment la validation XHTML 1.1 n'aime pas les id dans les balises <td></td>. Mais je viens de me rendre compte que en fait lorsque l'on sélectionne un élément avec la méthode "getElementsByName()" cela créé un tableau il faut donc écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementsByName(id)[0].value
    Pour accéder et donc modifier la valeur du boutton.

    Merci beaucoup de vos réponse en tout cas et désolé de vous avoir fait déranger pour rien


    EDIT (--> Bovino):

    Oui c'est ce que je m'étais rendu compte, mais par contre je ne connaissais pas avec this, et cette méthode me parrait bien plus fiable et moins longue à écrire

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    apparemment la validation XHTML 1.1 n'aime pas les id dans les balises <td></td>
    Ah bon ??? id est un attribut universel que tu peux mettre sur toutes les balises sauf
    * base
    * head
    * html
    * meta
    * param
    * script
    * style
    * title
    !
    Cependant, ce que le (x)HTML n'aime pas, ce sont des id identiques sur une même page !!!
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" name="15" id="15" value="?" onclick="this.value='valeurModif'"/>

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

Discussions similaires

  1. recupérer la valeur d'un bouton radio
    Par ericmart dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/05/2008, 15h42
  2. Réponses: 1
    Dernier message: 29/09/2005, 11h10
  3. [JSP] passer en parametre valeur d un bouton radio
    Par logica dans le forum Servlets/JSP
    Réponses: 19
    Dernier message: 13/05/2005, 14h09
  4. Réponses: 8
    Dernier message: 09/03/2005, 10h47
  5. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04

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