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 :

Touche entrée et formulaires sous chrome


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 27
    Points : 62
    Points
    62
    Par défaut Touche entrée et formulaires sous chrome
    Bonjour,

    Je souhaite désactiver la touche entrée dans les champs input des formulaires. J'ai donc la fonction suivante :

    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
    document.observe("dom:loaded", function() {
     
      $$("input").each(function(element){
          element.observe("keypress",function(event){
              var key;
     
              if(window.event)//IE & Chrome
                key = window.event.keyCode;
              else
                key = event.which;
     
            if(key==13)
                  return false;
              else
                  return true;
     
          });
      });
    });
    Ce code marche parfaitement pour IE et FF mais n'a pas d'effet sous chrome, qui me retourne toujours true. Pourtant lors d'un appuie sur entrée, key affiche 13 lors d'un alert.
    J'ai déjà pensé à un problème de type en transformant les variables en chaines de caractères au moment du test, sans succès.

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Bonsoir,

    Je crois que tu te compliques ; visiblement tu utilises prototype, et ca, ca va te simplifier la vie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Event.observe(document,"dom:loaded", function() {
      $$("input,textarea").invoke("observe", "keypress", function(e){
        // prototype unifie les accès
        if(e.keyCode == Event.KEY_RETURN) {
          // ne pas faire un return false, mais un stop sur l'événement
          e.stop();
        }
      });
    });
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 27
    Points : 62
    Points
    62
    Par défaut
    Merci, c'est ce qu'il me fallait.

    Une petite précision tout de même, qu'entends-tu par "prototype unifie les accès" ?

  4. #4
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Ca signifie qu'avec prototype (comme la plus part des frameworks javascript), tu n'as pas pour les fonctionnalités ajoutées par le framework à différencier les navigateurs dans ton code.
    exemple : attachEvent vs addEventListener qui sont wrappés par observe dans prototype
    c'est la même chose avec l'événement en lui même. Dès lors que tu utilises observe, prototype garanti que l'evenement sera fourni à ton listener.
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

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

Discussions similaires

  1. Touche entrée validation formulaire
    Par snakepierre dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 05/04/2007, 12h35
  2. Detection touche entrée sous FF
    Par la.sophe dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/02/2006, 17h33
  3. Touche entrée sur double formulaire -> validation
    Par 10-nice dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/10/2005, 12h02
  4. Réponses: 4
    Dernier message: 25/10/2005, 11h23
  5. touche entrée dans formulaire
    Par pram dans le forum XMLRAD
    Réponses: 8
    Dernier message: 15/04/2003, 09h13

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