Bonjour à tous,

Avant tout, je précise que je développe en ASP .NET1. Mais que je suis obligé de passer par du javascript pour contourner une limitation de l'asp .net1 (fonctionnalitée qui est dans le .net2).


Explication;

J'ai un formulaire, avec différents input text, buttons submit,...

lorsque l'utilisateur se trouve dans un input text et qu'il appuie sur "Enter", alors le browser click sur le bouton se trouvant le plus "proche" de cette zone de texte.

J'ai trouvé sur le net un petit code javascript qui permet de spécifier quel bouton sera cliqué lorsque l'utilisateur appuie sur "Enter".

La fonction va très bien sous IE, et ne donne rien sous FireFox. J'ai éssayé de faire une version Firefox, en m'inspirant de la FAQ, mais je rencontre diverses erreurs.

Voici le code:
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
<SCRIPT language='javascript'>
function fnTrapKD(e,btn){
if(parseInt(navigator.appVersion) >=4)
{
	if(navigator.appName == 'Netscape')
	{
		if(e.which==13)
		{
			e.returnValue=false;
			alert('ff');
            		e.cancel = true;
			document.getElementById(btn).click();
		}
	}
	else
	{ 
		if (event.keyCode == 13)
		{
			event.returnValue=false;
			alert('ie');
           		event.cancel = true;
			btn.click();
		}
	}
}
}
</SCRIPT>
Firefox arrive bien dans le bon if lors de l'appui sur la touche Enter...le code fautif est donc celui-ci...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
e.returnValue=false;
e.cancel = true;
document.getElementById(btn).click();
Premiere question comment annuler l'évenement en cours?
Instinctivement j'ai fait comme pour IE avec returnValue=false et cancel = true sur l'évenement e puisque firefox ne reconnait pas event

Ensuite il doit y avoir un problème avec mon getElementById puisque Firefox me donne cette erreur:
Error: document.getElementById(btn) has no properties
J'ai éssayé aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
document.getElementById(btn.value).click();
C'est pareil, je ne comprend pas pourquoi il ne reconnait pas btn comme une variable.


Merci pour votre aide