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 :

Plusieurs onclick dans un input


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 59
    Points
    59
    Par défaut Plusieurs onclick dans un input
    Bonjour,

    Je veux que lorsqu'on clique sur plusieurs liens les valeurs s'ajoute à la suite de lautre dans un input comme ceci, mais je n'arrive pas à ajouter plusieurs liens.

    ex: quand je clique sur 123 ça doit ajouter dans input 123 mais la ce n'est pas le cas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <a href="#" onclick="document.getElementById('code').value='1';">1</a>
    <a href="#" onclick="document.getElementById('code').value='2';">2</a>
    <a href="#" onclick="document.getElementById('code').value='3';">3</a>
     
    <form action="traitement.php" method="post">
    <input type="text" id="code" name="key" />
    <input type="submit">
    </form>



    Merci pour votre réponse:

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    Points : 52
    Points
    52
    Par défaut
    Avec un '+' devant le = ça ira mieux...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <a href="#" onclick="document.getElementById('code').value+='1';">1</a>
    <a href="#" onclick="document.getElementById('code').value+='2';">2</a>
    <a href="#" onclick="document.getElementById('code').value+='3';">3</a>
     
    <form action="traitement.php" method="post">
    <input type="text" id="code" name="key" />
    <input type="submit">
    </form>
    Saray

  3. #3
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Bonjour,

    Proposition intéressante par Saray mais malheureusement fausse.

    exemple :

    value à 0.

    Je clique sur 1, value = 1
    Je clique ensuite sur 2, (value = 3) != 12

    Comment faire alors?

    Puisque tu utilises le JS, via une fonction JS ^^

    Lors du onclick, tu appelles une fonction avec en paramètre ta valeur.

    En variable, un compteur, initialisé à 0.

    Dans ta fonction JS, tu fais

    paramètre*10^compteur

    C'est ce résultat que tu dois attribuer à code.
    Bien sûr, avec un += de façon à ne pas "écraser" le résultat précédent.

    edit : merci de placer les balises code dans vos messages pour une meilleure lisibilité

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 59
    Points
    59
    Par défaut
    Merci pour vos réponse c'est ce que j'attendais

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Et pourquoi ne pas faire simple
    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
    22
    23
    24
    25
     
    <html>
    <head>
     
    <script>
    function ajouter(v)
    {
        var c = document.forms[0].Champ1;
        c.value = c.value + v; 
    }
    </script>
    </head>
     
    <body>
     
    <a onclick="ajouter(1)">1</a>,
    <a onclick="ajouter(2)">2</a>,
    <a onclick="ajouter(3)">3</a>
     
    <form>
    Mon champ <input type="text" name="Champ1"/><br>
    </form>
     
    </body>
    </html>

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 59
    Points
    59
    Par défaut
    Est comment fait on pour ne pas afficher 2 fois le même chiffre ?

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    Points : 52
    Points
    52
    Par défaut
    Tu as raison Deallyra, un petit toString() corrigerait la problème pour éviter les sommes de nombres.

    Pour continuer sur le code de OButterlin et ne pas afficher 2 fois le même chiffre.
    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
    22
    23
    24
    25
    26
    27
    28
    29
     
    <html>
    <head>
     
    <script>
    function ajouter(v)
    {
        var c = document.forms[0].Champ1;
    // test si le chiffre est déjà présent
        if(!c.value.indexOf(v)){
             if(c.value==0)c.value='';
             c.value += v.toString(); 
        }
    }
    </script>
    </head>
     
    <body>
     
    <a onclick="ajouter(1)">1</a>,
    <a onclick="ajouter(2)">2</a>,
    <a onclick="ajouter(3)">3</a>
     
    <form>
    Mon champ <input type="text" name="Champ1"/><br>
    </form>
     
    </body>
    </html>
    Saray

  8. #8
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Trop simplifier est parfois l'ennemi du bien ...
    Voici un code minimaliste mais qui n'en oublie pas pour autant les bases d'un code correct

    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
    <script type='text/javascript'>
    function ajouter(v)
    {
       document.forms[0].elements['key'].value += v+''; 
    }
    </script>
    </head>
     
    <body>
     
    <a href="#" onclick="ajouter(1);return false;">1</a>,
    <a href="#"  onclick="ajouter(2);return false;">2</a>,
    <a href="#"  onclick="ajouter(3);return false;">3</a>
    <form action="traitement.php" method="post">
    <input type="text" id="code" name="key" value="" readonly="readonly" />
    <input type="submit" value='envoyer'>
    </form>
     
    </html>

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    ou encore:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <div id="liens">
    	<a href="#">1</a>
    	<a href="#">2</a>
    	<a href="#">3</a>
    </div>
     
    <form id="f" action="traitement.php" method="post">
    	<div>
    		<input type="text" id="code" name="key" />
    		<input type="reset" value="vider" />		
    		<input type="submit" />
    	</div>
    </form>
     
    <script type="text/javascript">
     
    var l=document.getElementById("liens").getElementsByTagName("a");
    var c=document.getElementById('code');
     
     
    for(i=0;i!=l.length;i++){
    	l[i].onclick=function(){
    		if(!c.value.match(this.firstChild.data)){
    			c.value+=this.firstChild.data;
    			return false;
    		}
    	}
    }
     
    </script>

  10. #10
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Et pourquoi ne pas faire simple
    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
    22
    23
    24
    25
     
    <html>
    <head>
     
    <script>
    function ajouter(v)
    {
        var c = document.forms[0].Champ1;
        c.value = c.value + v; 
    }
    </script>
    </head>
     
    <body>
     
    <a onclick="ajouter(1)">1</a>,
    <a onclick="ajouter(2)">2</a>,
    <a onclick="ajouter(3)">3</a>
     
    <form>
    Mon champ <input type="text" name="Champ1"/><br>
    </form>
     
    </body>
    </html>
    Question.

    Ta variable c est locale non? ^^

    augmentes là autant que tu veux, je pense que tu auras un petit problème quant au résultat attendu

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Oui ou encore

    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
    <script>
    function ajouter(v)
    {
    document.forms[0].elements['key'].value += v+''; 
    }
    </script>
    </head>
     
    <body>
     
    <a href="javascript:ajouter(1)" >1</a>
    <a href="javascript:ajouter(2)" >2</a>,
    <a href="javascript:ajouter(3)" >3</a>,
    <form action="traitement.php" method="post">
    <input type="text" id="code" name="key" value="" readonly="readonly" />
    <input type="submit" value='envoyer'>
    </form>

  12. #12
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    sans toString ni +'' en passant par innerHTML qui retourne forcément du string:
    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
    <script>
    function ajouter(v)
    {
       document.forms[0].elements['key'].value += v.innerHTML; 
    }
    </script>
    </head>
     
    <body>
     
    <a href="#" onclick="ajouter(this);return false;" >1</a>
    <a href="#" onclick="ajouter(this);return false;" >2</a>
    <a href="#" onclick="ajouter(this);return false;" >3</a>
    <form action="traitement.php" method="post">
    <input type="text" id="code" name="key" value="" readonly="readonly" />
    <input type="submit" value='envoyer'>
    </form>

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Question.

    Ta variable c est locale non? ^^

    augmentes là autant que tu veux, je pense que tu auras un petit problème quant au résultat attendu
    c est locale mais il vaut l'objet input... le plus important c'est que c.value change de valeur...

    Saray

  14. #14
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    tiens, encore une variante économique
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <div id="liens">
    	<a href="#">1</a>
    	<a href="#">2</a>
    	<a href="#">3</a>
    </div>
     
    <form id="f" action="traitement.php" method="post">
    	<div>
    		<input type="text" id="code" name="key" />
    		<input type="reset" value="vider" />		
    		<input type="submit" />
    	</div>
    </form>
     
    <script type="text/javascript">
     
    var l=document.getElementById("liens").getElementsByTagName("a");
    var c=document.getElementById('code');
     
     
    for(i=0;i!=l.length;i++){
    	l[i].ind=i+1;
    	l[i].onclick=function(){
    		if(!c.value.match(this.ind)){
    			c.value+=this.ind;
    			return false;
    		}
    	}
    }
     
    </script>

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 59
    Points
    59
    Par défaut
    La réponse de javatwister est très bien, et si on veux afficher des images au lieux des :

    <a href="#">1</a>
    <a href="#">2</a>
    <a href="#">3</a>

    par ceci:

    <input type=image src="puce.bmp" value="1">
    <input type=image src="puce.bmp" value="2">


    J'ai trouver la réponse.

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Version ave click unique
    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
    <script>
    function ajouter(v)
    {
       document.forms[0].elements['key'].value += v.innerHTML; 
       v.onclick=function(){return false;}
       return false;
    }
    </script>
    </head>
     
    <body>
     
    <a href="#" onclick="ajouter(this);" >1</a>
    <a href="#" onclick="ajouter(this);" >2</a>
    <a href="#" onclick="ajouter(this);" >3</a>
    <form action="traitement.php" method="post">
    <input type="text" id="code" name="key" value="" readonly="readonly" />
    <input type="submit" value='envoyer'>
    </form>

  17. #17
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Citation Envoyé par Saray Voir le message
    c est locale mais il vaut l'objet input... le plus important c'est que c.value change de valeur...

    Saray
    c.value change de valeur dans le bloc.

    Une fois sortit du bloc, la valeur de c.value est perdue.

  18. #18
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    c.value change de valeur dans le bloc.

    Une fois sortit du bloc, la valeur de c.value est perdue.
    Vous avez au moins essayé d'exécuter le code ?
    "c" contient l'adresse de l'objet représentant le champ du formulaire, on se fiche royalement que c soit perdu en sortant de la fonction puisque la valeur du champ pointé a été modifiée, c'était le but non ?

  19. #19
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bon, il me semble qu'on a fait le tour là...

  20. #20
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Non, je ne l'ai pas testé.

    Mais si vous me dîtes qu'il s'agit d'un pointeur, au vu de ma connaissance du JavaScript... Je vous concède volontiers ce point.

    Mais en ce cas, pourquoi ne pas utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script>
    function ajouter(v)
    {
        document.forms[0].Champ1.value = document.forms[0].Champ1.value.value + v; 
    }
    </script>
    Et à titre informatif, qu'est ce qui, en JavaScript, définit une variable "simple" d'une variable contenant un pointeur?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. plusieur value dans un input
    Par nad_ii dans le forum Langage
    Réponses: 5
    Dernier message: 28/02/2015, 18h45
  2. onclick dans un input en php
    Par jeepibmx dans le forum Langage
    Réponses: 2
    Dernier message: 18/06/2008, 22h54
  3. plusieurs champs dans un input
    Par nizzart dans le forum Langage
    Réponses: 12
    Dernier message: 10/04/2008, 14h50
  4. Sélectionner plusieurs fichiers dans un input FILE
    Par melitta dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/12/2007, 14h29
  5. [HTML] Firefox/IE : onClick dans un input
    Par bart64 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 15/03/2006, 19h43

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