Probleme de Focus entre IE et FIrefox?

Eléphant du PHP | 108 Messages

14 sept. 2006, 15:48

bonjour,

j'ai un formulaire et 3 boutons differents ( OK, stock et annuler)
j'aimerais bien que quand on fait "ENTRER" sur le clavier, que ce soit le OK qui soit valider!

Car quand je teste sur firefox, il fait bien ce que je veux alors que sur IE, il lance ANNULER :?

Donc si quelqu'un pourrait m'aider a resoudre ce probleme, il serait tres gentil :D !

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 sept. 2006, 17:18

A priori la touche "entrée" si tu es dans un champ autre que textarea va valider le formulaire comme si tu appuyais sur le bouton "submit" du formulaire (s'il n y a pas de bouton de type submit, aucune action n'a lieu)
De quel type est ton bouton annuler ? submit, reset ou button ?
Si c'est un submit, remplace le par button et spécifie l'action dans le onClick, cela devrait permettre au vrai (et seul) submit de s'exécuter à chaque fois :)

Eléphant du PHP | 108 Messages

15 sept. 2006, 09:45

Je ne vois pas trop ce que tu veux dire, je suis un peu :sleeping: en cette fin de semaine, c'est quel bouton que je dois changer?
<table width="100%" class="cadre">
	<tr>
		<td align="center" width="60%">
<!--------------------------- CONTENU ------------------------------>
			<b>
		<!----- Gestion matériel ----->
Matériel			:
			</b>
			<select name="champ_materiel" style="width:75%">
				<option value="" >(Aucun)</option>
				<option value="2" >A</option
				<option value="272" >B</option>
			</select>
		</td>
		<td align="center" width="40%">
			<b>
Numéro de série
			:
			</b>
			<input type="text" name="num_serie" value="" onfocus="select();"  size="20" maxlength="20">
		</td>
	</tr>
	<tr>
		<td align = "center" colspan=2>
			<!----- Bouton OK ----->
			<input type="submit" name="ok" class="bouton" value="Ok" onclick='return ValidationFormBtnOk(formMateriel);'>
			<!----- Bouton stock ----->
			<input type="submit" name="stock" class="bouton" value="Stock">
		</td>
	</tr>
	</table>
</td>
</tr>
<tr>
<td>
	<table width="100%">
	<tr><td align="center">
		<!-- Bouton Annuler -->
		<input type="submit" name="annuler" class="bouton" value="Annuler">
		</td>
	</tr>
<!--------------------------- CONTENU ------------------------------>
	</table>
	
Merci

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 sept. 2006, 09:54

:idea: tiens de la lumière pour te réveiller lol

Tu n'as que 3 boutons :)

Ryle te demande de changer le bouton type submit de annuler, en type button + action ;)

Eléphant du PHP | 108 Messages

15 sept. 2006, 10:22

:D :D :D

Merci, j'ai eu une trop longue soiree hier :wink:

je vais essayer ca! :)

Eléphant du PHP | 108 Messages

15 sept. 2006, 10:36

je vien d'essayer j'ai mis le bouton submit en bouton button :) (sans pour l'instant mettre l'action)

il fait toujours la meme chose il ne selectionne pas le bouton submit OK :?
il fais comme si j'avais appuyer sur annuler!

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 sept. 2006, 10:57

Je viens de tester (en enlevant les onclick pour qu'il n'y ait pas de bug) sur IE. J'ai mis en type BUTTON le annuler et stock en ne laissant que OK en submit.

ça fonctionne. Normalement quand c'est de type BUTTON, la touche Entrée est inactive, et ne provoque pas l'envoi du formulaire.

Eléphant du PHP | 108 Messages

15 sept. 2006, 11:25

Voila ce que j'ai fait, et j'ai toujours le meme resultat!
j'ai teste pour savoir ce qui passe en post (quand les boutons etaient tous en 'submit') en faisant 'enter' et pas click de souris et rien ne passe ni de ok ni de stock ni de annuler!
<table width="100%" class="cadre">
	<tr>
		<td align="center" width="60%">

<!--------------------------- CONTENU ------------------------------>
			<b>
		<!----- Gestion matériel ----->
Matériel			:
			</b>
			<select name="champ_materiel" style="width:75%">
				<option value="" >(Aucun)</option>
				<option value="2" >DOLPHIN 7400</option>
				<option value="272" >DOLPHIN 7400 GPRS</option>
			</select>
		</td>
		<td align="center" width="40%">
			<b>Numéro de série:</b>
			<input type="text" name="num_serie" value="" size="20" maxlength="20">
		</td>
	</tr>
	<tr>
		<td align = "center" colspan=2>
			<!----- Bouton OK ----->
			<input type="submit" name="ok" class="bouton" value="Ok">
			<!----- Bouton stock ----->
			<input type="button" name="stock" class="bouton" value="Stock">

		</td>
	</tr>
	</table>
</td>
</tr>
<tr>
<td>

	<table width="100%">
	<tr>
		<td align="center">
				<!-- Bouton Annuler -->
				<input type="button" name="annuler" class="bouton" value="Annuler">
		</td>
	</tr>
<!--------------------------- CONTENU ------------------------------>
	</table>
Et sur firfox ca passe nickel!

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 sept. 2006, 11:28

Alors là je ne comprend pas...Je suis sur IE, j'ai repris texto ton code, ça fonctionne, c'est toujours le bouton OK qui est actif en premier.

Je me dit bon peut-être que IE prend le premier bouton, alors je change le bouton OK de place et je le met après Stock. Pareil, c'est le bouton OK qui est pris en premier...

Eléphant du PHP | 108 Messages

15 sept. 2006, 14:31

regarde la difference dans l'url,( je les passe en get) entre firefox et IE, qund tu fais enter sur firefox on a le contenu de la liste-box , du champ texte et le bouton ok, alors que dans IE on a pas le bouton ok alors que j'en ai besoin pour pouvoir savoir ce que je dois faire
<html>
<head>
</head>
<body>
<form method="get" action="btn.html">
<table width="100%" class="cadre">
	<tr>
		<td align="center" width="60%">
<!--------------------------- CONTENU ------------------------------>
			<b>
		<!----- Gestion matériel ----->
Matériel			:
			</b>
			<select name="champ_materiel" style="width:75%">
				<option value="" >(Aucun)</option>
				<option value="a" >A</option>
				<option value="b" >B</option>
			</select>
		</td>
		<td align="center" width="40%">
			<b>
Numéro de série
			:
			</b>
			<input type="text" name="num_serie" value="" size="20" maxlength="20">
		</td>
	</tr>
	<tr>
		<td align = "center" colspan=2>
			<!----- Bouton OK ----->
			<input type="submit" name="ok" class="bouton" value="Ok">
			<!----- Bouton stock ----->
			<input type="submit" name="stock" class="bouton" value="Stock">
		</td>
	</tr>
	</table>
</td>
</tr>
<tr>
<td>
	<table width="100%">
	<tr><td align="center">
		<!-- Bouton Annuler -->
		<input type="submit" name="annuler" class="bouton" value="Annuler">
		</td>
	</tr>
<!--------------------------- CONTENU ------------------------------>
	</table>
	</form>
</body>
</html>

Eléphant du PHP | 108 Messages

15 sept. 2006, 14:39

il ya pas moyen de dire que si je tape sur la touche 'enter' je fais le bouton ok en javascript?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 sept. 2006, 14:41

Très space...Toujours avec ton dernier code, ça fonctionne.

Sur IE j'ai : btn.html?champ_materiel=a&num_serie=dza

Sur FF : btn.html?champ_materiel=a&num_serie=dza&ok=Ok

Donc tes variables passent bien en GET sur mes deux navigateurs...

Eléphant du PHP | 108 Messages

15 sept. 2006, 14:48

les variables ok mais pas le bouton ok et j'en ai besoin pour savoir quoi faire pour la suite

j'ai trouve ca en cherchant sur le net:
OnKeyPress
"window.event.keyCode == 13" = touche "entrer" du clavier
il y aurait pas moyen de faire script avec ca, j'y connais vraiment pas grand en javascript?
:D

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 sept. 2006, 14:59

Houlà pfiouuu c'est comprendu enfin...Là je ne peux pas trop t'aider sur ce coup. Attendons les expert javascript ;)

désolé

Eléphant du PHP | 108 Messages

15 sept. 2006, 15:05

en tout cas merci a toi, de m'avoir repondu toujours rapidement et merci pour ton aide