Bonjour,
J'ai une fonction JS qui me sert a controler la saisie de contenu dans un formulaire. Actuellement la fonction permet d'empecher de saisir autre chose que des chiffres et "." ou "," dans les champs. Je souhaiterais, en plus, qu'elle remplace automatiquement les "," par des ".".
La fonction actuelle, appelée sur pression d'une touche :
Qui remplace les virgules dans les chaines.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 function verifSaisie(srcObj,evt){ if(window.event){ keyCode = window.event.keyCode; evt = window.event; }else if (evt) keyCode = evt.which; else return true; if (keyCode==44) keyCode=46; // ,=>. if (keyCode==46) { //On autorise l'insertion du point uniquement s'il est unique if (srcObj.value.indexOf('.')==-1 && srcObj.value.indexOf(',')==-1 ){ return; } } if (((keyCode>=48) && (keyCode<=57)) || keyCode == 0 || keyCode == 8) { evt.returnValue = true; return true; }else{ evt.returnValue = false; return false; } } Pour laquelle cette ligne : if (keyCode==44) keyCode=46; // ,=>. ne sert a rien, puisqu'elle agit sur une variable locale kayCode. Je voudrais remplacer la ligne par quelquechose qui pourrait substituer le caractere qui va etre affiché par celui que je veux. Pour le moment j'ai mis en place cette autre solution, qui consiste a appeler, au moment de relacher la touche cette fonction : function virguleRemplace(srcObj) { if (srcObj.value.indexOf(",") != -1) { srcObj.value = (srcObj.value.split(",")[0] + "." + srcObj.value.split(",")[1]); } }
Mais si c'est possible, je souhaiterais que ce traitement se fasse dans la premiere fonction, au moment de la pression de la touche, sans que la virgule n'ait le temps d'apparaitre : vraiment a la volée.
Qu'en pensez vous ?
Merci d'avance.![]()
Partager