OVH Cloud OVH Cloud

Validation du formulaire en pressant la touche "Enter"

1 réponse
Avatar
Did
voilà j'ai une page aspx dans laquelle des controles serveurs et controles
utilisateurs (ascx) sont chargés. La page contient entre autres un formulaire
dont le trairement de l'information est invoquée en cliquant sur un bouton
("envoyer").
contrairemnt à l'asp et html lorsqu'on frappe sur le bouton "Envoyer" le
"do_postback" est invoqué et le traitement souhaité n'est pas exécuté. J'ai
tenté de capturer via Javascript la frappe d'une touche, mais ça ne fonctione
pas pour la touche "enter". Y a -t-il moyen de désactiver le Postback sur
frappe de "Enter".
Cependant j'ai pui faire valider le formulaire sur une page aspx dans
laquelle il y avait juste deux champs texte (HtmlInput et non contrôle
serveur) et un bouton. Je n'y avais pas mis des controles utilisateurs.

Pour infos, je programme en C# avec Visual Studio 2003.

Merci de votre aide

1 réponse

Avatar
Aurélien [MS]
Bonjour Did,

Voici un exemple de code très sympa permettant d'affecter un bouton à un
Textbox quand tu appuieras sur "Entrée".
Dans l'exemple ci-dessus, quand tu as le focus sur TextBox1 et que tu
appuies sur Entrée, c'est Button1 qui sera "declenché",
pour TextBox2, ce sera Button2, etc...


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
DefaultButton(Page, TextBox1, Button1)
DefaultButton(Page, TextBox2, Button2)
DefaultButton(Page, TextBox3, Button3)
End Sub


Public Sub DefaultButton(ByRef Page As System.Web.UI.Page, ByRef
objTextControl As TextBox, ByRef objDefaultButton As Button)
' Sets default buttons.
' Created by Janus Kamp Hansen - http://www.kamp-hansen.dk
Dim sScript As New System.Text.StringBuilder

sScript.Append("<SCRIPT language=""javascript"">" & vbCrLf)
sScript.Append("function fnTrapKD(btn){" & vbCrLf)
sScript.Append(" if (document.all){" & vbCrLf)
sScript.Append(" if (event.keyCode == 13)" & vbCrLf)
sScript.Append(" { " & vbCrLf)
sScript.Append(" event.returnValueúlse;" & vbCrLf)
sScript.Append(" event.cancel = true;" & vbCrLf)
sScript.Append(" btn.click();" & vbCrLf)
sScript.Append(" } " & vbCrLf)
sScript.Append(" } " & vbCrLf)
sScript.Append("}" & vbCrLf)
sScript.Append("</SCRIPT>" & vbCrLf)

objTextControl.Attributes.Add("onkeydown", "fnTrapKD(document.all."
& objDefaultButton.ClientID & ")")
Page.RegisterStartupScript("ForceDefaultToScript", sScript.ToString)
End Sub

--
Aurélien Norie
Microsoft France
--------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.


"Did" a écrit dans le message de news:

voilà j'ai une page aspx dans laquelle des controles serveurs et controles
utilisateurs (ascx) sont chargés. La page contient entre autres un
formulaire
dont le trairement de l'information est invoquée en cliquant sur un
bouton
("envoyer").
contrairemnt à l'asp et html lorsqu'on frappe sur le bouton "Envoyer" le
"do_postback" est invoqué et le traitement souhaité n'est pas exécuté.
J'ai
tenté de capturer via Javascript la frappe d'une touche, mais ça ne
fonctione
pas pour la touche "enter". Y a -t-il moyen de désactiver le Postback sur
frappe de "Enter".
Cependant j'ai pui faire valider le formulaire sur une page aspx dans
laquelle il y avait juste deux champs texte (HtmlInput et non contrôle
serveur) et un bouton. Je n'y avais pas mis des controles utilisateurs.

Pour infos, je programme en C# avec Visual Studio 2003.

Merci de votre aide