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 :
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]);
	}
}
Qui remplace les virgules dans les chaines.

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.