Changer un keyCode sous firefox

vandoor Messages postés 2 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 14 février 2006 - 14 févr. 2006 à 13:48
maxf1 Messages postés 1 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 8 juillet 2010 - 8 juil. 2010 à 10:02
Bonjour,

je souhaite changer tous les '.' en ',' par une fonction javascript.

ça fonctionne très bien sous IE mais pas sous FF!



Quelqu'un pourrait-il m'aiguiller?



function myKeyPress( event ){

// permet de transformer le '.' en ','

if ( event.keyCode == 46 )

event.keyCode = 44;

}



Merci

vandoor

5 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
14 févr. 2006 à 14:20
Bonjour...

La gestion des événements n'est pas la même sous IE et NETSCAPE ( FireFox entre autres)
essaies avec le code suivant...
...dans la partie <SCRIPT> il faut rajouter...
var NETSCAPE (navigator.appName "Netscape");

//------------------------
function Fct_KeyPressed(e){
if( NETSCAPE)
alert( e.keyCode);
else
alert(event.keyCode);
}
if( NETSCAPE)
document.captureEvents( Event.KEYDOWN);
document.onkeydown = Fct_KeyPressed;
</SCRIPT>

;0)
0
vandoor Messages postés 2 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 14 février 2006
14 févr. 2006 à 15:10
Voici comment j'ai intégré ton code dans le mien



var NETSCAPE (navigator.appName "Netscape");



function Fct_KeyPressed(e){

if( NETSCAPE ) {

if ( e.keyCode == 110 ){


var text =
document.forms[0].elements['colonne'];

var value = text.value;

value = value.replace('.',',');

text.value = value;

}

}

else{

if ( event.keyCode == 46 )

event.keyCode = 44;

}

}



if( NETSCAPE ){

document.captureEvents( Event.KEYPRESS );

document.onkeyup = Fct_KeyPressed;

}else{

document.onkeypress = Fct_KeyPressed;

}



Une dernière chose, les évènements définis précédemment sont définit de façon globale!?

Si oui, comment puis-je faire pour que le code ne réagisse que sur un champ précis?



Merci

vandoor
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
14 févr. 2006 à 16:27
R
e..........

Dans ce cas il est préférable d'utiliser un événement dans le document.forms[0].elements['colonne']; onKeyUp par exemple qui ira remplacer les , par des .

par exemple :

avec une fonction du type
//-----------------------
function Remplace( this_){
var Texte = this_.value;
Texte = Texte.replace('.',',');
this_.value = Texte;

}

;0)
non TESTE...
0
daneox Messages postés 1 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 14 mai 2010
14 mai 2010 à 17:33
Bonjour,
Et si mon problème est que je souhaite remplacer le keyCode de 13 vers 9 ? il est alors impossible d'utiliser un .replace()

Voici le code, version réduit :
function MyKeyDown (e) {
   if (window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if (e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }
    switch (keynum) {
        case 13:
            if (window.event)
                e.keyCode = 9;
            else 
                return false; // Que puis-je utiliser ici?
        break;
    }
}

Vous avez une solutions?

Merci,
Daniel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maxf1 Messages postés 1 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 8 juillet 2010
8 juil. 2010 à 10:02
Tu as trouvé une solution. En voulant faire pareil je suis confronté au même problème. J'avais pensé également au "return false" pour ce qui n'est pas IE. Mais j'aurais aimé faire la tabulation aussi pour les autres afin que le comportement ne soit pas différent.

Max
0
Rejoignez-nous