Recuperer une touche presser

Résolu
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 - 17 mars 2006 à 09:19
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 18 mars 2006 à 09:16
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 mars 2006 à 09:52
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>
3
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 09:45
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...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 mars 2006 à 09:55
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>
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 10:00
le pb été du au faite que j'activer ma fonction avec levenement onkeyup si je fait onkeypress sa marche merci a toi ;)

L0rD...
0

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

Posez votre question
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 10:08
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...
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 10:24
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...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 mars 2006 à 10:43
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>
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 11:02
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...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 mars 2006 à 11:22
<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>
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 11:27
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...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 mars 2006 à 11:40
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>
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 11:44
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...
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 11:44
onkeypress="ma_fonction2(x)";
je me suis tromper au dessus pardon

L0rD...
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 12:08
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...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 mars 2006 à 12:20
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>
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 12:25
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...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 mars 2006 à 12:40
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>
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 mars 2006 à 12:44
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>
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 13:14
bon voila ma fonction marche je te remercie pour ton aide

L0rD...
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
17 mars 2006 à 18:02
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...
0
Rejoignez-nous