Desactiver les evenement JS

Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006 - 19 mai 2006 à 15:14
Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006 - 22 mai 2006 à 16:52
Bonjour à tous,

je développe une applications intranet (php/mysql) pour un hopital. le logiciel sera utilisé sous IE (contrainte).

ce logiciel est en fait un test auquel le patient repond par oui ou non via les touches 'O' et 'N'.
j'utilise les event onKeyPress et onKeyUp pour gerer le backspace.
A un moment le patient doit entrer sa taille et là le programme bug.

donc j'aurais voulu savoir comment desactiver ces events pour le
j'ai essayé en mettant onKeyUp="" et onKeyPress="" mais IE sans fout comme de sa premiere chemise ! ^^

merci de votre aide

Black_widow

17 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
19 mai 2006 à 15:49
bonjour,

   avec IE,F,Opera ou un autre navigateur ... onKeyUp,onkeypress... fonctionnent sans souci.
   mais ça dépend surtout de ce qui est fait dans les fonctions appelées sur ces évênements
      et aussi où sont mis ces évènements.
   2 remarques :
   _ pourquoi donc gérer le "BackSpace" ?
      il n'y avait pas plus simple ? laisser faire le navigateur par exemple ?
      ( avec passage automatique au champ suivant peut-être )
   _ les event peuvent ne s'appliquer qu'aux objets que l'on désire.

cordialement      Bul.   Site

/B>
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 mai 2006 à 15:51
je voulais compléter "plus simple" : des radios ( oui / non ) à cocher ?
cordialement      Bul.   Site/B>
0
Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006
19 mai 2006 à 16:38
Merci de la rapidite de reponse ^^

les events sont gere dans la balise body

les evenements me servent à savoir quelles touches sont pressees (en effet il s'agit d'un questionnaire de type oui / non).

les fonctions ne font rien d'extraordinaire : en fonction de la touche pressee, elle affecte une valeur à un champ caché () et valide le formulaire afin de passer à la question suivante. si le patient presse une touche incorrecte, un msg apparait et lui demande de ressaisir sa rep.

il faut que je gere le backspace car les diagnostics sont etablis a partir des reponses et de plus un patient, en fonction de ses reponses, va explorer ou une serie de question afin de creer un diagnostic. Il faut donc que lorsqu'il presse la touche backspace, je supprimme les occurences des reponses dont les questions sont >= à celle en cours (dites moi si je suis pas clair ...)

Cordialement,

Black_widow
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 mai 2006 à 16:54
>>les events sont gere dans la balise body
   on peut ne les mettre que sur les objets voulus.

>>quelles touches sont pressees 
   utiliser donc onkeyup 
   et sur les objets voulus, pas sur le body.

>>et valide le formulaire afin de passer à la question suivante
   ce n'est pas un peu lourd ? enfin ce n'est pas un jugement !

>>en fonction de la touche pressee, elle affecte une valeur à un champ caché () 
   on peut aussi faire la même chose avec des radios.

>>car les diagnostics sont etablis a partir des reponses
   pas avec l'ensemble des réponses ?
   il faut à tout prix faire ça au fûr et à mesure ?

   mais de toute manière ce serait plus simple, il me semble avce des radios,
      puisque là le seul choix c'est cocher oui ou non.
   et si on "revient" sue la question précédente... pas de souci, à priori
      je suis souvent e%¤¤%µ°#~...

>>dites moi si je suis pas clair
si si.

mais tout ça n'explique pas l'erreur,
qui doit être signalée ( avec IE, il faut activer le debogage
et mieux télécharger le debogger, gratis ches microsoft,
un pdf qui explique comment commencer à s'en servir 
sur mon site ,             avce FF regarder la console javascript )

cordialement      Bul.   Site

/FONT>
0

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

Posez votre question
Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006
19 mai 2006 à 17:42
merci de ta reponse

pour les boutons radio, j'y avais pense mais le chef de service m'a dit de faire simple et ecrit gros (c'est un hopital psy ...)

>>et valide le formulaire afin de passer à la question suivante
   ce n'est pas un peu lourd ? enfin ce n'est pas un jugement !
je ne vois pas comment gerer autrement puisque la question je vais poser depend de la ou des questions precedente.

les diagnostics sont forcement crees au fur et à mesure puisque l'explorations des differentes series dependent de ces bilans.

donc en definitive, si je veux desactiver les events sur une partie du code html, je les vire du body et je les case dans le forme ? c'est ca ?

Cordialement,

Blacj_widow
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 mai 2006 à 07:40
>>m'a dit de faire simple et ecrit gros


<style type="text/csss">
 table,td 
  {  font-face:Verdana;
   font-size:24px;
   font-weight:bold; }
</style>

----
Exemple Radio,
 <label for="r11">OUI
</label>,
 <label for="r12">NON
</label>

  avec peut-être un radio "retour question précédente"
            ça dépend du script.
   on pourrait d'ailleurs mettre des boutons 
   et moins de souci pour "backspace".

>>puisque la question je vais poser depend de la ou des questions precedente.
difficile alors de faire autrement, c'était une question à poser.

>> je les vire du body et je les case dans le forme ?
on les met sur les objets qui le réclament ( input ? )

cordialement   Bul.   Site
/FONT>
0
Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006
20 mai 2006 à 08:58
Pour l'ecriture j'ai effectivment utilise une feuille de style css.

cependant le Dr souhaite que le test ne necessite pas l'utilisation d'un autre objets que le clavier donc exit les radio ^^

je vais tester differentes solutions durant la journee, je te tiens au courant lorsque j'aurais trouver

Cordialement,

Black_widow
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 mai 2006 à 10:48
>>cependant le Dr souhaite que le test ne necessite pas l'utilisation d'un autre objets que le clavier
bien, donc O ou N et BackSpace donc.
>>je te tiens au courant
et si le problème persiste... car on n'a rien résolu à priori


cordialement      Bul.   
Site/FONT>
0
Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006
22 mai 2006 à 10:19
alors bilan :
en utilisant un debugage de debutant, je me suis rendu compte que onKeyUp retournait un code touche different de onKeyPress quand on presse les touches 1..9 : elles correspondent aux codes allant de 96 à 105 au lieu des vrais codes qui vont de 48 à 57

J'ai donc "bidouiller" mon code afin qu'il fasse ce que j'attend de lui .... En somme mon probleme est resolu mais la solution est complètement bidouillée et je suis pas sur qu'elle soit tres propre mais je n'ai pas trouve comment faire autrement ....

Si qqun a eu le meme probleme (ce dont je doute ^^) et qu'il une autre solution je suis preneur

Cordialement,

Black_widow
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
22 mai 2006 à 10:42
pas un code différent... mais évènement pas déclenché au même moment !
essayer cet exemple :


<script type="text/javascript">
 function aff(num)
 {
  document.frm.cle[num].value=document.frm.sai.value;
  document.frm.cla[num].value=event.keyCode;
 }
</script>
<form name="frm">
   ----
&nbsp;, frappe, code,
  ----
Saisie,
   ,
  ----
KeyDown,
   ,
   ,
  ----
KeyPress,
   ,
   ,
  ----
KeyUp,
   ,
   ,
 

</form>



uniquement fait avec IE ( event.keyCode ).



cordialement            Bul.   
Site



/FONT>
0
Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006
22 mai 2006 à 13:38
euh j'ai dû la confusion code touche code ascii! je parle de l'ascii bien sur!

mais le truc que je cale pas c'est si je presse la touche '1' pourquoi onKeyPress me renvoie 49 en onKeyUp me renvoie 97 !
je bosse sous XP Pro et IE 6.0

ps: pour les codes j'utilise le script suivant
...
<script language="JavaScript" type="text/javascript" >
  <!--
   
    function test()
    {
      alert(window.event.keyCode);
    }
 
  //-->
</script>
</head> 

...
 en alternant onKeyUp et onKeyPress -> alert ne renvoie pas la meme valeur
de plus onKeyUp ne fait pas la difference entre 'a' et 'A' bizarre non ??

Cordialement

Black_widow
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
22 mai 2006 à 15:13
l'un renvoie le n° de touche, l'autre le code Ascii.
et tout dépend de quel 1 : celui sur le pavé numérique
ou celui avec la touche & ?
>>onKeyUp ne fait pas la difference entre 'a' et 'A' bizarre non
non, c'est la même touche, même si le code Ascii est différent.
( il faudrait teste si shift est enfoncé par exemple )

cordialement   Bul.   
Site/FONT>
0
Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006
22 mai 2006 à 15:25
mais en principe les touches sont analysees par le PC et lui renvoie un ascii alors pourquoi il le fait dans un cas et pas dans l'autre ...

j'utilise le '1' du pave numerique et c'est que celui la et celui du &  renvoie des codes differents alors si y'a une raisonlogique je voudrais bien la connaitre parce que la a part faire chier le monde, je vois pas l'interet !

Cordialement,

Black_widow
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
22 mai 2006 à 16:34
l'un renvoie le n° de touche, l'autre le code Ascii.
il faut savoir que tous les claviers dans le monde ne sont pas pareil
( qwerty aux us, azerty francophone, ¤£µ*% chinois simplifié ... )
et donc par exemple la touche "a" sur un clavier francophone
retourne le n° 97 et le code ascii 65, aux us 97 et 81, pour le
chinois, je ne sais pas mais 97 comme n° de touche aussi je suppute

cordialement   Bul.   Site
on ne dit pas je suppute, mais je suis une péripatéticienne

/FONT>
0
Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006
22 mai 2006 à 16:37
ok mais pourquoi les 2 evenements ne renvoie pas la meme valeur (que ce soit ascii ou code touche) ?!

Cordialement
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
22 mai 2006 à 16:50
   ben il faut bien pouvoir tester les 2 ? non ?
      c'est comme ça que c'est fait en JavaScript ( pas seulement )
cordialement   Bul/B>
0
Black_widow Messages postés 9 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 22 mai 2006
22 mai 2006 à 16:52
ok vu comme ca, ca parrait logique ^^

Cordialement
0
Rejoignez-nous