Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2010, 15h43   #1
Membre du Club
 
Inscription : juillet 2007
Messages : 310
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 310
Points : 64
Points : 64
Par défaut curseur se positionne automatique à la fin

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

J'ai un champ texte.

J'ai une méthode onKeyUp :

Code :
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.
ekremyilmaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 16h45   #2
Membre du Club
 
Inscription : juillet 2007
Messages : 310
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 310
Points : 64
Points : 64
finalement, j'ai modifié légèrement mon code pour que le "element.value" ne soit pas mis à jour à chaque onkeyup....
ekremyilmaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h38.


 
 
 
 
Partenaires

Hébergement Web