5568 sujets

Sémantique web et HTML

Bonjour à tous,
Dans une page HTML, je souhaiterais passer d'une zone "input text" à une autre à l'aide de la touche Entrée plutôt que Tabulation, est-ce possible et si oui, comment?

Merci d'avance
Salut

Je comprend pas bien l'intèrèt de faire cela...
Les usagers du web ont l'habitude de passer d'un élément a l'autre soit avec la souris soit en faisant tab....

Sinon j'imagine qu'il faut se tourner du coté du javascript ... cela risque d'etre assez fastidieux pour pas grand chose à mon avis... non ?


Smiley cligne
En fait, c'est parce que la navigation entre les zones se fait à l'aide d'une douchette pour code-barre, qui fonctionne a priori en ajoutant un RC après la saisie.
Ca fonctionne lorsque les utilisateurs scannent sous Excel, il faudrait que rien ne change lorsque je vais leur mettre ne place la page HTML.
Oula malheureux Smiley smile tu as basculé du côté obscure Smiley cligne .

A mon humble avis abandonne cette idée ...

<edit>En effet, peut-être voir le problème sous un autre angle ...</edit>
Modifié par yodaswii (30 Jul 2007 - 15:22)
ahhhh ok.
j'avais justement par le passé fais un stage où je devais gèrer aussi une navigation à la douchette ... c'est un peu la galère sur une application web...

En fait le problème c'est que la validation de ton formulaire se fait avec entrée, donc je sais pas si c'est bien possible de cette façon.

Le truc serais alors de transformer l'"entrée" de la douchette en "tab"... je sais pas trop, c'est pas évident.
Bonjour,

J'avais fait cela pour un projet web, une personne qui ne voulait pas changer ses habitudes Smiley lol , Donc oui il faut que tu te tournes vers le javascript, en annulant l'effet de la touche entrée qui permet de valider le formulaire et la remplacer par tabulation.

Si je retrouve le code je te le mettrai. Mais je l'avais trouver sur le net.
Ouh là, ça m'aiderait bien que tu retrouves ce code, car je n'y connais presque rien en JS....
Merci en tout cas pour vos réponses.
Arf , je viens de me rappeler que j'ai jamais reussi à faire fonctionner la touche tab par le code javascript Smiley ohwell j'avais seulement bloquer la touche entrée, car eux appuyer tout le temps dessus.
C'est pas très malin de modifier le fonctionnement des formulaires de cette façon, mais soit...

J'ai peut-être une idée pour simuler la tabulation en js, avec IE6 il y a une fonction fireEvent. Je n'ai pas encore compris comment on s'en sert mais ça doit être jouable.

sinon, faire la classique : préparer une propriété nextElement pour chaque élément de formulaire concerné... et pour faire encore mieux, y ajouter également prevElement pour pouvoir aussi faire maj+tab.
Problème, comment générer une liste de ce type automatiquement ? c'est là le problème.
Modifié par QuentinC (30 Jul 2007 - 17:31)
Je ne pense pas avoir besoin de cette fonction PrevElement, car la navigation entre les deux zones de saisie se faisant à la douchette, on ne revient pas sur l'élément précédent.
Sinon, je ne comprends pas ta dernière interrogation....
Voici une idée pour simuler la touche tab avec la touche enter. Une fois le dernier champ rempli, l'envoi est effectué normalement.

Attention : le code suivant a été écrit en direct dans la zone de texte de réponse. Par conséquent, celui-ci n'a pas été préalablement testé.


for (var k=0; k<document.forms.length; k++) {
for (var j=0; j < document.forms[k].elements.length; j++) {
var cur = document.forms[k].elements[j];
if (j<document.forms[k].elements.length -1) cur.next = document.forms[k].elements[j +1];
else cur.next = null;

cur.nextFocus = function () {
if (this.next && this.next.focus) {
this.next.focus();
return false;
}
else return true;
}

cur.onkeydown = function (evx) {
var e = null;
if (evx) e = evx;
else if (window.event) e = window.event;
else return true;
if (!e) return true;

var kc = 0;
if (e.keyCode) kc = e.keyCode;
else if (e.which) kc = e.which;
else return true;
if (!kc) return true;

if (kc==0x0A || kc==0x0D) { // touche enter ?
if (this.nextFocus) return this.nextFocus();
else return true;
}
else return true;
}

}}
Ca ne fonctionne pas chez moi, mais j'ai trouvé - je pense - beaucoup plus simple. Ca fonctionne avec IE mais pas avec FF :


<body onkeydown="if (event.keyCode==13) {event.keyCode=9; return event.keyCode}">


Voilà, je pense que je vais en rester là...

Merci à tous pour votre aide Smiley smile
Modifié par orionis (31 Jul 2007 - 15:28)