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 :

Lors d'un choix écrire quelque chose


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut Lors d'un choix écrire quelque chose
    Bonjour ou Bonsoir à tous,

    J'ai une petite question. Je voulais savoir si c'était possible d'afficher un mot dans un INPUT quand on clique sur la touche "1" par exemple.

    Je m'explique, l'utilisateur a un input pur écrire que des chiffres, et je voudrais que lorsqu'il appuie sur la touche du clavier numerique "1", ca ecrit "test".

    C'est possible ?
    Si oui, pouvez vous m'aider ?

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    C'est possible, et c'est même très simple. Donc c'est toi qui vas le faire.
    Juste une question : où veux-tu qu s'affiche « test » ? Dans l'input lui-même ou dans une autre balise HTML ?

    Pour réagir aux évènements du clavier, il faut que l'élément qui a le focus (c'est-à-dire, en général, l'élément dans lequel il y a le curseur clignotant) enregistre un gestionnaire d'évènement. C'est pas trop compliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monInput.addEventListener("keypress", maFonction);
    Bien entendu, tu devras adapter les variables monInput et maFonction selon ton code. maFonction sera appelée par le navigateur à chaque fois qu'un évènement keypress est déclenché, et elle recevra un argument event, tu devras donc la déclarer comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function maFonction( event ){
       ...
    }
    Il y a plusieurs types d'évènements clavier : keyup, keydown, keypress, change et le petit dernier input. Je te renvoie à un post récent de moi pour les détails. Comme ici, il s'agit de détecter un caractère visible (« 1 »), le keypress me paraît le plus adapté.

    C'est un début de solution. J'attends ta réponse à ma question pour t'en dire plus

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    Dans le même input !

    Merci pour ces renseignements, je me renseigne

  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 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 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    quand on clique sur la touche "1"
    cliquer le clavier avec la souris ??? ça je sais pas faire ...

  5. #5
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Citation Envoyé par Devilju69 Voir le message
    l'utilisateur a un input pur écrire que des chiffres, et je voudrais que lorsqu'il appuie sur la touche du clavier numerique "1", ca ecrit "test".
    Citation Envoyé par Devilju69 Voir le message
    Dans le même input !
    Donc en fait si j'ai bien compris tu voudrais écrire « test » dans un input dans lequel on ne peut écrire que des nombres ?

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    Bonjour à tous,

    Je n'arrive à rien ! Ca m'enerve. Je débute en javascript et j'ai pas assez de connaissances.

    Je veux dire quand l'utilisateur utilise la touche 1 du clavier (il a accès seulement à un pavé numérique).

    Je voudrais écrire "test" soit dans le même input soit dans un div ou autre ; bref n'importe où

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    J'ai enfin quelque chose mais pas exactement ce que je veux

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      function quelle_touche(evenement)
       {
           var touche = window.event ? evenement.keyCode : evenement.which;
           if (touche==48)
    	   {
    			document.getElementById("form_id").elements["nom_input"].value = 'Test- ';
    	   }
    	   if (touche==49)
    	   {
    			document.getElementById("form_id").elements["nom_input"].value = 'Test2- ';
    	   }
       }
    Cela fonctionne bien mais, ça m'efface mon contenu. Je veux rajouter a chaque fois.

    Par exemple, si on tape "10", il faut écrire "Test2 - Test-". Et pour l'instant, cela supprime la première valeur

  8. #8
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    Il fallai rajouter un "+" juste avant le "=" c'est ça ?

  9. #9
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Citation Envoyé par Devilju69 Voir le message
    Il fallai rajouter un "+" juste avant le "=" c'est ça ?
    C'est ça. Après si tu te sens courageux tu peux peaufiner la chose en prévoyant les cas où le contenu doit être effacé, par exemple si l'utilisateur tape deux fois la même chose (je dis ça un peu au hasard mais tu vois ce que je veux dire).

    Il y a un point de ton code que, je pense, tu n'as pas bien compris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        var touche = window.event ? evenement.keyCode : evenement.which;
    L'opérateur ?:, le seul opérateur ternaire de JavaScript (et de pas mal d'autres langages), est une sorte de if/else raccourci. Il est toujours possible de l'écrire autrement, et je connais plusieurs développeurs qui préfèrent ne pas s'en servir du tout. Réécrivons ton bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var touche;
    if (window.event) {
        touche = evenement.keyCode;
    } else {
        touche = evenement.which;
    }
    Ce code marche sans doute dans la plupart des cas, mais il me dérange un peu. Le test de window.event permet de prendre en charge les anciennes versions d'IE pour lesquelles les gestionnaires d'évènements ne reçoivent pas d'event en paramètre, mais où un event existe au niveau global. Le plus souvent, on voit plutôt des choses de cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fonction quelle_touche( evenement ){
        evenement = evenement || window.event;
        ...
    }
    De l'autre côté, nous avons cette propriété event.which qui est apparue après event.keyCode et event.charCode dans le but (plus ou moins atteint) d'uniformiser les deux. C'est donc une fonctionnalité relativement récente, qui de fait n'existe pas sous les anciennes versions d'IE, les mêmes qui ne passent pas l'event en paramètre. Mais ce ne sont pas les seuls.

    Je pense que le test choisi ne correspond pas exactement à la situation. Pourquoi ne pas tester directement la propriété qu'on veut utiliser, en l'occurence evenement.which ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (evenement.which) {
        touche = evenement.which;
    } else {
        touche = evenement.keyCode;
    }
    Il y a une philosophie qui se cache derrière : en testant l'existence de window.event, tu testes en réalité si le navigateur est une ancienne version d'IE. Et ensuite, partant de ce constat, tu emploies des fonctionnalités supposées exister sous ces versions d'IE. C'est une méthode qu'on appelle « browser detection ». Comme je l'ai dit, il est plus fiable de tester directement la présence de la fonctionnalité qu'on veut utiliser, peu importe le navigateur. Cette méthode-là s'appelle « feature detection » et elle est plus souple.

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

Discussions similaires

  1. Comment écrire quelque chose à des coordonnées précises ?
    Par Zebulon777 dans le forum IGN API Géoportail
    Réponses: 21
    Dernier message: 19/06/2013, 09h44
  2. Réponses: 13
    Dernier message: 07/08/2006, 10h13
  3. affichier un INPUT lors d'un choix ....
    Par apt dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/01/2005, 19h35
  4. Réponses: 3
    Dernier message: 27/04/2004, 18h21

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