Bonjour, j'ai un petit souci avec le curseur...

J'ai un champ texte.

J'ai une méthode onKeyUp :

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
41
42
43
44
45
46
47
48
 
function Sscc_formatSscc(element) {
	var elementValue = element.value;
	if(elementValue != null && elementValue.length >= 2) {
	// On ajoute les '0' devant les valeurs saisies.
	 if (!elementValue.startsWith("00")) {
	   if (elementValue.startsWith("0")) {
	     element.value = "0" + elementValue;
	   } else {
	     element.value = "00" + elementValue;
	   }
 
	   // S'il y a plus de 20 caractères on vide le champ (cas du copier/coller)
	   // Auparavant, on supprime tous les espaces et on place la valeur
	   //	dans une variable temporaire
	   var elementValue = element.value.replaceAll(' ', '');
	   if (elementValue.length > 20) {
	     element.value = '';
	   }
	 }
	}
 
	// On ajoute les espaces :
	// - entre le 2e et 3e caractère
	// - entre le 19e et 20e caractère
	// Note : En cas d'un copier/coller sans formatage l'incrément est à 19.
	// Alors qu'en cas de contrôle/formatage 1 à 1, l'espace entre le 2e et 3e caractère
	//	compte pour un caractère.
	var newSscc = '';
	var elementValue = element.value.replaceAll(' ', '');
	var i;
	for (i = 0; i < elementValue.length; i++) {
		if (elementValue.charAt(i) != ' ' && (i == 2 || i == 19)) {
			newSscc += ' ';
		}
 
	 newSscc += elementValue.charAt(i);
	}
 
	// Saisie ultra rapide
	// En cas de lenteur de l'execution du code, on ne récupère que les 22 premiers caractères
	// 20 du SSCC + 2 espaces
	if (newSscc.length > 22) {
	  newSscc = newSscc.substring(0, 21);
	}
 
	element.value = newSscc;
}
Or quand je place mon curseur, en plein milieu de mon champ texte pour insérer des chiffres, il insère un chiffre là où j'ai positionné le curseur et le curseur se repositionne à la fin (c'est à dire après le relachement du bouton pressé).

Vous me direz "c'est normal" car je fais un reset de la valeur à la fin "element.value = newSscc".

Sous firefox, le curseur reste bien alors que sur IE 6, le curseur se positionne à la fin...

J'aimerai que le curseur reste à sa place.. mais je sais pas si c'est possible...

Merci d'avance.