Gestion de touches F5, BACKSPACE et ENTER (javascript et jQuery)

elara1970 Messages postés 1 Date d'inscription jeudi 25 février 2010 Statut Membre Dernière intervention 25 février 2010 - 25 févr. 2010 à 18:13
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 3 mars 2010 à 20:39
Bonjour,

Je souhaiterais gérer certaines touches du clavier en javascript (et jQuery).
Le code fonctionne bien sous IE mais pas trop avec FF.

Cependant, la gestion du BackSpace me pose problème même avec IE car sur les champs de type INPUT je ne peux plus rien corriger !!! J'aurais donc voulu pouvoir faire BackSpace sur mes champs INPUT.
J'ai cherche une méthode avec elementActive, mais mon niveau Javascript ne me permet pas d'aller plus loin.

Vous verez aussi un test avec Ctrl+N. Cela fonctionne très bien avec IE, mais avec FF, j'obtiens le message alert + l'ouverture d'une nouvelle fenêtre (ce que je ne souhaite pas). Impossible de remédier à ce problème !

Si vous avez une idée...

Merci...
Emmanuel.

==================================================
var isCtrl = false;
var isShft = false;
var isAlt  = false;


jQuery.initHotKey = function(e)
{
if ($.browser.msie)
{
window.event.keyCode = 0;
window.event.cancelBubble = true;
window.event.returnValue = false;
}
else
{
e.keyCode = 0;
e.which = 0;
e.stopPropagation();
e.preventDefault();
}
isCtrl = false;
isShft = false;
isAlt  = false;
return false;
};

$(document).keyup(function (e)
{
var Code = e.keyCode || e.which;
if (Code == 16) isShft=false;
if (Code == 17) isCtrl=false;
if (Code 18) isAtlfalse;
});

$(document).keydown(function (e)
{
var Code = e.keyCode || e.which;
if (Code == 16) isShft=true;
if (Code == 17) isCtrl=true;
if (Code 18) isAtltrue;

if(Code == 8) // BACKSPACE
{ 
alert("BACKSPACE inactif");
$.initHotKey(e);
}

if(Code == 116) // F5
{ 
alert("F5 inactif");
$.initHotKey(e);
}

if(e.keyCode == 13) // ENTER
{ 
Evaluate_Enter();
$.initHotKey(e);
}

if(isCtrl && Code == 78) // CTRL + N
{ 
alert("CTRL-N");
$.initHotKey(e);
}
});


===================================================

1 réponse

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
3 mars 2010 à 20:39
Bonjour,
il faut tester que l'objet déclancheur n'est pas un input...
fonction de test a mettre sur le document
//--------------
function Test(e){
  // e.target         pour FireFox
  // event.srcElement pour IE
  var Obj = e ? e.target : event.srcElement;
  alert( Obj.tagName);
}

;O)
0