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 :

Utilisation addEventListener incorrecte ?


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut Utilisation addEventListener incorrecte ?
    Bonjour à tous,

    je viens vers vous car j'ai un petit probléme avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    window.addEventListener("keydown",function(ev){
    		if(ev.keyCode == 8){
    			alert('test');
    			return false;
    		}	
    },false);
    En gros je voudrais afficher un alert et annuler l'action d'appuyer sur la touche DELETE.
    Or quand j'appuie dessus, l'alert s'affiche bien mais l'action continue (retour page précédente).
    De plus, quand j'appuie sur les autres touches, rien ne se passe (que je mettes ou pas "return true;" à la fin).

    Je ne comprends pas pourquoi ca ne fonctionne pas.
    Si l'un de vous à une idée...

    Merci

  2. #2
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Bonjour,

    aprés tests j'en suis arrivé à cette version :

    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
    32
    33
     
    if (window.addEventListener) {
    	window.addEventListener("keydown",function(ev){
    		if(ev.keyCode == 8){
    			alert('test');
    			if (ev.preventDefault) {
    			  ev.preventDefault();
    			}
    			ev.returnValue = false;
    		}else{
    			if (ev.preventDefault) {
    			  ev.preventDefault();
    			}
    			ev.returnValue = true;
    		}
    	},false);
    }
    else {
    	window.attachEvent("onkeydown",function(ev){
    		if(ev.keyCode == 8){
    			alert('test');
    			if (ev.preventDefault) {
    			  ev.preventDefault();
    			}
    			ev.returnValue = false;
    		}else{
    			if (ev.preventDefault) {
    			  ev.preventDefault();
    			}
    			ev.returnValue = true;
    		}
    	});
    }
    Mais sous IE8, rien ne se passe lors de l'appuie sur les touches (gestion via le attachEvent)

    Merci

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Bonjour, merci pour ta réponse

    C'est assez complet comme tuto, je le garde sous la main.

    Finalement, j'ai opté pour une solution Jquery

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(document).keydown(function(ev){
    	if(ev.keyCode == 8 && !($("input").is(":focus"))){
    		if (ev.preventDefault) {
    		  ev.preventDefault();
    		}
    		ev.returnValue = false;
    	}	
    });
    Bonne journée.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    j'ai opté pour une solution Jquery
    En réalité, c'est un mauvais mix entre jQuery et JavaScript natif.

    Dans ce genre de cas, l'utilité de jQuery, c'est l'uniformisation de la syntaxe, ce qui signifie qu'un objet Event jQuery possède une méthode preventDefault() qui sera disponible quel que soit le navigateur, mais qui est à ne pas confondre avec la méthode native JavaScript.
    Bref, tu n'as ni à tester, ni à prévoir de syntaxe alternative :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $(document).keydown(function(ev){
    	if(ev.keyCode == 8 && !($("input").is(":focus"))){
    		ev.preventDefault();
    	}	
    });
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. Utilisation incorrecte de Null ?
    Par pafi76 dans le forum Access
    Réponses: 6
    Dernier message: 28/06/2006, 09h40
  2. [VB6] erreur de compilation:utilisation incorrecte du mot clé New
    Par fouf_01 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 17/05/2006, 16h22
  3. erreur : utilisation incorrecte du mot clé
    Par StyleXP dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/02/2006, 09h24
  4. Utilisation incorrecte de Null ?
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 23/11/2005, 10h27
  5. [PROCEDURE STOCKEE]Utilisation incorrecte de INSERT
    Par BaronSamdi dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/03/2004, 16h26

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