Bonjour
Quelqu'n a eu un probleme avec la fonction focus d 'un champ.

en gros ce que je dosi faire c'est lorsque mon champs est rempli au max il va au champs suivant mais le probleme c'est que j'ai un trois champ qui se suivent sans de libelle et ca me fait sauter deux champ .
Mais ce qui est bizarre c'est que ca marche sur firefox le focus marche tres bien.
il ya t il un moyen de prendre le focus avec l'argument (paramname ou ID).
Merci pour ceux qui lisent .
j envoie le code demain je ne suis pas au boulot :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<s:textfield
					name="Jour"
					theme="perso" tabindex="5" id="dn_dd" maxlength="2" size="2" />
				/ <s:textfield
					name="Mois"
					theme="perso" tabindex="6" id="dn_mm" maxlength="2" size="2" />
				/ <s:textfield
					name="Annee"
					theme="perso" tabindex="7" id="dn_aaaa" maxlength="4"
					size="4" /> <span class="date-pattern">(JJ/MM/AAAA)</span>
			</li>
mon javascript:
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
$('#dn_dd, #dn_mm, #dn_aaaa').keyup(function(event) {nextFieldAtChar($(this), event.which);});
 
 
function nextFieldAtChar(field, key)
{
	// Récupérer la longueur max
	limit = field.attr('maxlength');
 
	// Si la touche TAB est activée, ne pas faire le contrôle pour éviter les
	// pièges aux claviers
	if(key == 9 || key == 16)
		return true;
 
	// Calculer la longueur de la saisie
	longeur = field.val().length;
	if (field.id!="dn_jj" || field.id!="dn_mm")
	{
	// Répérer le champ suivant
	next = field.next('input').eq(0);alert("next suivant:"+field.val());	
	if( ! next.length){
		next = field.parent().next().find('input').eq(0);
	alert("next1:"+field.val());	
	}
	if( ! next.length)
	{	next = field.parent().next().next().find('input').eq(0);
	alert("next2:"+field.val());
	}
	// Une fois la limite atteinte, déplacer le focus
	if(next.length && longeur >= limit)
		{
		var toto=next.focus();
		alert("next3:"+field.val()+" "+toto);
		}
	}
	else{
		if(field.id=="dn_jj"){
		next=${'#dn_mm'};
		else{}
 
	}}
}