Recuperer une touche presser

Résolu
Signaler
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
bonjours j'ai un input type=text et je voudrai a recuperer chaque touche presser pour les metre dans un tableau
donc jaavais fait un onKeyup="ma_fonction();"

le pb c que j'arrive qu'a recuperer la value a chaque fois
donc sa marche que pour la premiere letre
si l'internaute tape "a" je recupere a
mais apres si il tape "z" je recupere "az"
comment faire pour recuperer que la letre qu'il vient de taper?
d'avance merci

L0rD...

23 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,
~ ne prendre que la dernière lettre du champ
( regarder du coté de champ.substring ou .substr )
~ le n° touche qui veint d'être enfoncée c'est
event.keyCode pour IE,
evt.which pour FF en "surveillant" l'évênement onkeyup.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
voici ce que j'ai fait :
function getKey(e) {
//Récupère la touche présser en ASCII
ascii = e.keyCode;
// Transforme le mode ASCII en caractère
touche = String.fromCharCode(ascii);
alert(touche);
}

mon problème est qui me dit a chaque fois que la touche presser est en MAJ
si je presse "t" il maffiche T
si je persse "T" il m'affiche T
il reconnais pas les MAJ des min
quelqu'un pourrait m'aider ?
L0rD...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
croisement...
>>il reconnais pas les MAJ des min
keycode ou which on obtient le n° de touche
.shiftKey ==> shift enfoncé ou pas.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
le pb été du au faite que j'activer ma fonction avec levenement onkeyup si je fait onkeypress sa marche merci a toi ;)

L0rD...
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
une autre question comment savoir si c'est la touche Delete qui a été presser ?
j'ai essayer en faisant :
if ascii == "8"
mais sa marche pas ... =/

L0rD...
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
je pense avoir compri le principe sans vraiment resoudre mon pb
pour recuperer un caractere il faut que sa soit press
pour recuperer les touche spécial (alt , ctrl , backspace , etc.) il faut que sa soit keydown ou keyup
sa n'arrange pas mon problème si quelqu'un pouvait m'aider
d'avance merci

L0rD...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
1° if ( ascii == 8 ) ça aurait plus de chances , mais :
2° je te cite : pour recupérer les touche spéciales (alt , ctrl , backspace , etc.)
il faut que ce soit keydown ou keyup
tout est dit.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
tu n'aurait pas une idée alors dans c K la ?
pcq en faite jtexplik le principe de mon truc
je recupere lettre par lettre la valeur dun input type=text
mais dans c K la faut prendre en compte le K ou l'internaute efface une lettre :/
si tu a une idée c la bienvenue

L0rD...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
<MARQUEE onmouseover=this.stop(); style="BORDER-RIGHT: #ff6a22 1px solid; BORDER-TOP: #ff6a22 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 12px; BORDER-LEFT: #ff6a22 1px solid; WIDTH: 400px; BORDER-BOTTOM: #ff6a22 1px solid; FONT-FAMILY: Comic Sans MS" onmouseout=this.start(); scrollDelay=600 direction=up bgColor=#e0ffe0 height=50>
<CENTER>
J'aurais préféré un texte que les humains comprennent.

Vous n'êtes pas sur un portable, votre clavier possède au
moins 102 touches, vous pouvez les utiliser.

Réagissons contre le langage SMS
et les fautes d'orthographe volontaires. </CENTER></MARQUEE>

j'ai beaucoup de mal à traduire...

je recupere lettre par lettre la valeur dun input type=text
est-ce réellement nécessaire au fur et à mesure de la frappe ?
c'est un exercice ?

dans une réponse je disais :
~ ne prendre que la dernière lettre du champ
( regarder du coté de champ.substring ou .substr )

Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
oui c'est nessaire car je doit verifier si ce mot contien des min , des MAJ , des chiffre , des caractere spéciaux
pour ce qui est de ton champ.substring ou champ.substr
sa va prendre en compte le faite que l'utilisateur peut apuyer sur delete ?

L0rD...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
si ce n'est qu'un contrôle...
quand le champ est totalement saisi ==> test du contenu
[ avec une(des) expression(s) régulière(s) ]
ça ne suffit pas ?

Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>

</FO>
</S< body>
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
bon derniere question apres promis je t'enbete plus (de toute façon si ta réponse est positive sa devrai marcher)
est ce qu'il y a moyen de passer une variable dune methode a l'autre je m'explique :
admeton j'ai sa :
onkeydown="var x=ma_fonction1();" onkeypress(x);"

est ce que ma variable x vas passer de la methode onkeydow a la methode onkeypress ?
si non y a t-il moyen de faire sa autrement

L0rD...
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
onkeypress="ma_fonction2(x)";
je me suis tromper au dessus pardon

L0rD...
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
c'est bon je me suis demerder autrement :

function estchiffre(x){
if(x>=0 && x<=9){
return true;
}
else return false;
}

function estmin(x){
if(x>="a" && x<="z"){
return true;
}
else return false;
}

function estMAJ(x){
if(x>="A" && x<"Z"){
return true;
}
else return false;
}

function estspec(x){
if((x>="!" && x<="/") || (x>=":" && x<="@") || (x>="[" && x<="`") || (x>="{" && x<="~")){
return true;
}
else return false;
}
function test(){
x=document.formulaire.passadminform.value.length;
for(var j=0;j<x;j++){
k[j]=document.formulaire.passadminform.value.substring(j,j+1);
chiffre = estchiffre(k[j]);
min = estmin(k[j]);
MAJ = estMAJ(k[j]);
spec = estspec(k[j]);
}
}

L0rD...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
regarder les expressions rationnelles :
ça évitera les boucles.
document.formulaire.passadminform.value.match(....)
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
une dernier question est ma fonction sera enfin fini parcequ'elle me prend la t^^ete :
j'ai 4 variable qui sont soit = a 0 soit egale à 1
je veut verifier si 1 ou 2 ou 3 ou 4 variable sont = a 1
comment faire ?
pcq avec des if ya plein de solution :
if(( var1==1 && var2==1 ) || ( var1==1 ou var3==1 ) etc..
tu n'aurai pas une solution ?

L0rD...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
utiliser un array ?
var varN=new Array(0,1,0,1);
et var1 c'est varN[1]...
pour tester faire une boucle qui regarde varN[indice] de 0 à varN.length
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
m%$¤$@ c'est pénible... message qui revient à un état antérieur...

je disais ( avant d'être interrompu ) :

faire une boucle où l'on teste
varN[indice] avec indice variant de 0 à ( varN.length-1)

Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
bon voila ma fonction marche je te remercie pour ton aide

L0rD...
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
re
une toute derniere question
donc je t'es expliquer le truc
je recupere letre par letre ce que l'internaute tape dans un input type=text
je regarde si il y a des letre , des min , des MAJ , des caractere speciaux
selon sa j'augmente la jauge de difficulte
(en faite sa dit si son pass est faible , moyen , difficile)
le probleme c'est que si admetons je tape :
aZ3 <== sa va dire difficile
mais sa ne prend pas en compte si l'utilisateur efface une (ou plusieur lettre)
exemple si il fait "Delete" et kil rajoute "e"
donc aZe logikement sa devrai marquer moyen hors sa reste niveau difficile
y-aurait t-il une methode decoute en temp reel de ce qui se pass ?? comment resoudre ce pb ?
d'avance merci

L0rD...