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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    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 éclairé
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    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 : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    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é
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    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
    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>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

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

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    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
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  8. #8
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    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

  9. #9
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    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

  10. #10
    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 659
    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 659
    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>
    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 !

  11. #11
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    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 684
    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>

  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 659
    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 659
    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>
    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 !

  13. #13
    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 659
    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 659
    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>
    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 !

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

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