Problème avec Enter

Eléphant du PHP | 78 Messages

07 sept. 2005, 03:38

Salut,
Je me lance à peine en js et j'aimerais réussir à faire en sorte que lorsque je fais entrer (avec mon clavier) mon focus se mette sur le champs suivant de mon formulaire. Donc ce que j'ai fait c'est que lorsque je charge ma page je perd le focus de mon bouton submit avec un onbur et sur chaque input j'appelle une fonction qui me donne le focus sur le champs suivant. Seulement je saisis mon 1er champs et je fais entrer et je n'atteris pas sur mon 2eme champs, il valide mon bouton. J'ai essayé de mettre la fonction qui me permet de perdre le focus du bouton dans mon input mais ce n'est pas bon. Comment pourrais je faire pour que je désactive mon bouton et que lorsque j ai saisi mon dernier champs il se reactionne, quelque chose comme ca?
Quelqu'un pourrait m'eclairer?
Merci

Eléphant du PHP | 172 Messages

07 sept. 2005, 20:39

Salut,

Pourquoi veux-tu utiliser ENTER pour passer au champ suivant alors que TAB est prévu pour ça ?

Eléphant du PHP | 417 Messages

07 sept. 2005, 21:38

---
Modifié en dernier par JazzFinder le 28 juin 2006, 19:52, modifié 1 fois.

Eléphant du PHP | 78 Messages

07 sept. 2005, 23:34

Merci beaucoup c'est ca que je voulais :D

Eléphant du PHP | 78 Messages

08 sept. 2005, 21:39

Bonjour,
Quelqu'un pourrait m'expliquer le bout de code?
Parce qu'en fait je croyais que c'était bon mais ce n'est pas tout à fait le cas.
En fait le enter passe bien au champs suivant. Mais lorsque j'arrive à mon dernier champs à saisir, je lui dis de prendre mon bouton submit en focus mais rien ne se passe.
Je vous mets mon code.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<script LANGUAGE="JavaScript">
		function donnerFocus(nom) {
			document.forms[0].elements[nom].focus();
		}
		
		/***********************************************
		* Script pour désactiver la touche "Enter" dans un formulaire
		* Auteur inconnu
		***********************************************/
		               
		function handleEnter (field, event) {
	      var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	      if (keyCode == 13) {
	         var i;
	         for (i = 0; i < field.form.elements.length; i++)
	            if (field == field.form.elements[i])
	               break;
	         i = (i + 1) % field.form.elements.length;
	         field.form.elements[i].focus();
	         return false;
	      }
	      else
	      return true;
	   	}     
		</script>
	</head>
	
	<body>
		<form action="essai2.html">
			<div class="entreLigne">
				<label  id="nom">Nom</label>
				<input name="nom" onkeypress="return handleEnter(this, event)" tabindex="1" />
				<label id="prenom">Pr&eacute;nom</label>
				<input name="prenom" onkeypress="return handleEnter(this, event)" tabindex="2" />
			</div>
			<div class="entreLigne">
				<label id="password">Mot de passe</label> 
				<input name="password" onkeypress="return handleEnter(this, event)" tabindex="3" />
				<label id="tel">T&eacute;l&eacute;phone</label>
				<input name="tel" onkeypress="return handleEnter(this, event)" tabindex="4" />
			</div>
			
			<div class="entreLigne">
				<label id="fonction">Fonction</label>
				<select name="fonction" onkeypress="donnerFocus('boutonSuivant')" tabindex="5" >
					<option selected>Fonction1</option>
					<option>Fonction2</option>
					<option>Autres</option>
				</select>
			</div>
			<div id="globalNav">
				<input name="boutonPrecedent" onmouseover="changerClasseBoutonApres(this)" onmouseout="changerClasseBoutonAvant(this)" class="boutonAvant" tabindex="7"  type="submit" value="Précédent"/>
				<input name="boutonSuivant" onmouseover="changerClasseBoutonApres(this)" onmouseout="changerClasseBoutonAvant(this)" class="boutonAvant" tabindex="6"  type="submit" value="Continuer"/>
			</div>
		</form>
	</body>
</html>
J'ai un bug lorsque j'arrive sur mon select. J'aimerais que lorsque je choisis ma selection et que j'appuie sur mon enter il parte sur mon bouton suivant.
Merci
++

Mammouth du PHP | 19672 Messages

08 sept. 2005, 21:52

Je viens de faire un essai, ça ne fonctionne de toutes façon pas sous IE6, en tous cas pas sur ma machine :-k

Quant au problème, je l'ai vu sous Firefox, mais je ne vois pas comment le résoudre.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 417 Messages

08 sept. 2005, 22:01

---
Modifié en dernier par JazzFinder le 28 juin 2006, 19:52, modifié 1 fois.

Eléphant du PHP | 78 Messages

08 sept. 2005, 23:50

la fonction changerClasseBoutonApres(this) je ne l'ai pas mise dans l'exemple mais je l'ai défini dans mon code.
Le problème vient du select. Si j'enlève le select et que je met un champs de saisie simple en dernier je me dirige bien sur le bouton que je souhaite.
J'espere que j'ai été assez claire.
++
ps: cyrano je n'ai pas de soucis avec ie6.

Eléphant du PHP | 417 Messages

09 sept. 2005, 01:15

---
Modifié en dernier par JazzFinder le 28 juin 2006, 19:50, modifié 1 fois.

Eléphant du PHP | 78 Messages

09 sept. 2005, 02:27

On oublie mes 2 fonctions changerClasseBoutonAvant et changerClasseBoutonApres c'est juste pour définir un style.
Mon problème est que lorsque je saisis mon formulaire ta fonction fonctionne tres bien seulement lorsque j'arrive aux champs select pour la fonction, j'aimerais que lorsque l'utilisateur clique sur enter il ai le focus sur le boutonSuivant et non le boutonPrecedent. C'est pourquoi j'ai utilisé ma fonction donnerFocus. Mais le problème c'est que sous FF il attend un onchange et sous IE6 ca l'air de bien fonctionner le onkeypress.
++

Eléphant du PHP | 417 Messages

09 sept. 2005, 03:36

---
Modifié en dernier par JazzFinder le 28 juin 2006, 19:50, modifié 1 fois.

Eléphant du PHP | 78 Messages

09 sept. 2005, 10:34

Mais dans mon select je ne peux pas faire appelle à une fonction qui me donne le focus sur mon boutonSuivant? Au départ ca fonctionnait mais maintenant je vois que ce n'est plus tres fiable :( .
En tout cas merci pour l'aide.
+

Eléphant du PHP | 417 Messages

09 sept. 2005, 17:51

---
Modifié en dernier par JazzFinder le 28 juin 2006, 19:51, modifié 1 fois.

Eléphant du PHP | 78 Messages

10 sept. 2005, 01:08

Ben en fait non parce qu'il faut que je garde mon select. Bon au pire des cas l'utilisateur débutant cliquera sur le bouton avec sa souris (c'est pas top par contre).
Merci pour l'aide.