Saut de champs lors de l'appui sur Entree [RESOLU] - HTML/CSS - Programmation
Marsh Posté le 13-03-2008 à 14:17:54
Je ne comprends pas trop ta question tpierron?
En fait, lors de la pression sur la touche Entree et si ce n'est pas dans un element textarea alors je lance une boucle pour le tab...
Mon probleme est que au lieu de passer 11 champs il saute seulement au suivant...
Marsh Posté le 13-03-2008 à 14:20:59
Tu peux pas définir le keycode comme ça en espérant que ça simule la touche tab
Il faut récupérer la liste des textarea, et une fois le bon trouvé, lui faire un focus()
Marsh Posté le 13-03-2008 à 14:25:55
Ahhh ok! j'ai compris!
Si le textfield a ce nom la alors je focus sur celui la et pareil pour chaque textfield, c'est ca nan?
Pourquoi parle tu de textarea?
Marsh Posté le 13-03-2008 à 14:58:41
Well, je voulais simplement dire, plutôt que de te casser la tête à simuler 12x la pression de la touche TAB, utilise la méthode focus() sur le textarea où tu veux que le focus aille.
Marsh Posté le 13-03-2008 à 15:09:54
tpierron a écrit : Well, je voulais simplement dire, plutôt que de te casser la tête à simuler 12x la pression de la touche TAB, utilise la méthode focus() sur le textarea où tu veux que le focus aille. |
Merci tpierropn et FlorentG! Je pense avoir compris, neanmoins j'ai essaye ca et ca ne fonctionne pas:
L'appel:
Code :
|
->regarder onkeydown="enter_jump(event,'.$seg_name.'_'.$year_id.'_'.$label_id.')", , $seg_name.'_'.$year_id.'_'.$label_id.' renvoi newplants_1_1
Et la fonction:
Code :
|
J'ai aussi essaye ca:
Code :
|
Rien non plus comment ca se fait?
Marsh Posté le 13-03-2008 à 15:18:03
Déjà laisse tomber le onkeydown comme ça, tu va trop de faire chier à le rédiger/débugger, vaudrait mieux le définir via un script externe.
Marsh Posté le 13-03-2008 à 15:42:00
Maisheu.... getElementById est une méthode de document pas de window (ça ne m'étonnerai pas que ça passe sous IE).
Marsh Posté le 13-03-2008 à 16:03:55
en effet, je m'en suis rendu compte apres avoir poste...
j'ai deja change ca, mais il y a encore d'autres erreurs! Je vais essayer de trouver, mais si tu as une idee, n'hesite pas...
L'erreur est que le champ est soit disant pas defini!
Marsh Posté le 14-03-2008 à 12:25:27
Une fonction avec un parametre event ne peut prendre aucun autre parametre apparement,.... toutes mes tentatives ont ete infructueuses...
Ca aurait ete trop beau de faire un enter_jump(event,seg_name,year_id,label_id), mais ca ne passe pas...
Donc j'ai cree deux fonctions en javascript:
enter_jump(event);-> renvoie une valeur 0 si keycode different de 'return' et 1 si c'est 'return'
action_enter(seg_name,year_id,label_id) -> focus sur le correct textfield en fonction des parametres.
Ma question est donc maintenant:
Comment lancer a partir de n'importe quel textfield la fonction action_enter(balabla); seulement si enter_jump renvoie 1?
Pour l'instant j'ai quelque chose qui ressemble a ca en simplifie (sans les autres fonctions javascript):
Code :
|
J'aimerais bien integrer la fonction action_enter(baba) a ce input text comme indiquer ci-dessus!
Merci
EDIT: L'autre solution serait de mettre le focus sur le textfield avec un tabindex+12 par rapport au tabindex du textfield d'ou la fonction est lance... Ca serait plus propre et plus joli mais j'ai aucune idee de comment faire...
Marsh Posté le 14-03-2008 à 14:28:31
And Garfunkel a écrit : Une fonction avec un parametre event ne peut prendre aucun autre parametre apparement,.... toutes mes tentatives ont ete infructueuses... |
Si, mais faut utiliser un framework genre YUI qui permet de passer aux events des paramètres supplémentaires
Marsh Posté le 14-03-2008 à 14:40:58
Ou plus simplement, tu peux aussi assigner tes fonctions de gestion d'événement en javascript, en ajoutant les paramètres nécessaire directement à l'objet. Après, dans ton événement tu pourras utiliser "this" pour récupérer les propriétés. Du genre :
Code :
|
Marsh Posté le 14-03-2008 à 15:22:59
Salut Tpierron,
Merci de ta reponse, mais meme si je l'ai lu plusieurs fois je n'ai pas vraiment compris....
Je viens de faire un truc qui marche parfaitement sous firefox et presque sous IE6:
La fonction
Code :
|
L'appel:
Code :
|
La fonction action_enter(name) est une fonction javascript qui s'occupe de faire le focus sur l'element voulu!
Cela marche dans les 2 browsers (ff et ie6) mais dans ie il me submit le formulaire juste apres... , une idee?
Edit:
J'ai creer dans le form, cette fonction:
Code :
|
et voila la fonction:
Code :
|
Mais ca ne fonctionne pas non plus
PS: Le site doit marcher parfaitement sous IE6 car sous intranet...
Marsh Posté le 14-03-2008 à 15:56:11
Ça me semble correct, je rajouterai un return false dans ton onkeydown :
Code :
|
Marsh Posté le 14-03-2008 à 17:04:40
tpierron a écrit : Ça me semble correct, je rajouterai un return false dans ton onkeydown :
|
Merci pour ton idee! Mais... Hihi! Avec ta proposition, je ne peux plus entrer aucun chiffre ou aucun caractere dans les textfields....
Peut etre une autre idee?
Merci
Marsh Posté le 14-03-2008 à 17:11:33
Arf, effectivement, c'était un peu trop brutal comme solution. Sinon, tu peux essayer une légère variante :
Code :
|
Et dans enter_jump, si tu détectes l'appuie sur Return, alors retourne false, sinon true.
Marsh Posté le 17-03-2008 à 09:27:27
Yahoooo! Merci Tpierron pour ta reponse, je viens d'essayer et ca marche tip top! T'es un chef, merci!
Marsh Posté le 13-03-2008 à 13:27:10
Bonjour, bonjour,
Je souhaite 'sauter' plusieurs (12 exactement) textfields lors de la pression par l'utilisateur de la touche entree.
J'ai creer suite a quelques lectures de forums le code suivant:
Le probleme est que ce code ne saute que au champ suivant et pas 10 ou 12 champs suivants...
Quelqu'un a une idee?
Merci
Message édité par And Garfunkel le 17-03-2008 à 09:27:49