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 :

Cliquer sur une option dans un datalist déclenche les évènements du clavier dans Chrome


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 263
    Points : 79
    Points
    79
    Par défaut Cliquer sur une option dans un datalist déclenche les évènements du clavier dans Chrome
    Bonjour,
    Quand on clique sur une option dans un <datalist, ça ne devrait pas déclencher un event du clavier puisque on ne touche pas au clavier.
    Le comportement est normal sur Firefox, mais pas sur Chrome.
    Voir le code suivant :
    Code html : 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
    <label for="browser">Choose your browser from the list:</label>
    <input list="browsers" name="browser" id="browser" onkeyup='keyup(event)'>
     
    <datalist id="browsers">
      <option value="Edge">
      <option value="Firefox">
      <option value="Chrome">
      <option value="Opera">
      <option value="Safari">
    </datalist></body>
    </html>
    <script>
    function keyup(event)
      {
      console.log ("keyup : " + event.code);
      }
    </script>
    Tapez la clé C, il reste Chrome dans la liste, cliquez sur l'option Chrome et vous obtenez deux events keyup :

    keyup : KeyC
    keyup : undefined

    Le premier est normal, mais le second déclenché par la souris ne l'est pas, d'ailleurs le code est vide.

    Avec Firefox, la même opération ne donne que la ligne
    keyup : KeyC

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 440
    Points : 4 942
    Points
    4 942
    Par défaut
    Bonjour,

    Il faudrait utiliser les événements keypress ou input au lieu de keyup pour éviter le conflit.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 263
    Points : 79
    Points
    79
    Par défaut
    Ah, en effet, comme ça ça marche.
    Merci.
    Mais ça n'empêche qu'il y a un bogue dans Chrome.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 263
    Points : 79
    Points
    79
    Par défaut
    Bon, en fait je me suis enthousiasmé trop vite :
    - avec keypress, le caractère pressé ne se trouve pas encore dans le champ INPUT, et j'en ai besoin. (OK, je peux le trouver dans event.code, mais ça ne me dit pas à quel endroit dans le champ il va être déposé).
    - l'évènement input est déclenché dans les deux cas, clavier ou option cliquè (ce qui est logique) et je veux justement différencier les deux.

    Je vais donc continuer à utiliser keyup et vérifier le contenu de event.code lequel est vide dans le cas d'un click.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/05/2010, 19h49
  2. [WD14] Ajout d'une option dans combo sur requête
    Par no_me_entero dans le forum WinDev
    Réponses: 3
    Dernier message: 05/08/2009, 21h17
  3. Cliquer sur un bouton dans une autre application
    Par FredericB dans le forum C++Builder
    Réponses: 16
    Dernier message: 10/05/2008, 17h23
  4. Réponses: 5
    Dernier message: 29/07/2006, 00h35
  5. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11

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