Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
30 juin 2009 2 30 /06 /juin /2009 17:30

L’utilisateur a souvent tendance à cliquer plusieurs fois sur le bouton de validation d’un formulaire, pensant que le premier clique n’a pas été pris en compte.

Par exemple, dans le cas d’un formulaire envoyant un email, il en résulte plusieurs envoies du même email.

Pour éviter ce désagrément et informer l’utilisateur que son premier clique a bien été pris en compte nous allons ajouter un peu de JavaScript dans notre code.

Dans cette exemple l’ID du bouton est “ButtonEnvoyer”. Vous devez remplacer cette ID par l’ID de votre bouton.

 

Voici notre bouton :

Code :

<asp:Button  id="ButtonEnvoyer" runat="server" Text="Envoyer" Width="125px" />

 

Et voici le code behind qui permet d’ajouter le JavaScript.

Code :

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim sbValid As System.Text.StringBuilder = New System.Text.StringBuilder

        sbValid.Append("if (typeof(Page_ClientValidate) == 'function') { ")

        sbValid.Append("if (Page_ClientValidate() == false) { return false; }} ")

        sbValid.Append("this.value = 'Patientez svp...';")

        sbValid.Append("this.disabled = true;")

        sbValid.Append(ClientScript.GetPostBackEventReference(Me.ButtonEnvoyer, Nothing).ToString)

        sbValid.Append(";")

        ButtonEnvoyer.Attributes.Add("onclick", sbValid.ToString())

 

End Sub

 

Si le formulaire n’est pas valide le bouton est Enabled=True et affiche le texte “Envoyer”.

Si le formulaire est valide le bouton est Enabled=False et affiche “Patientez svp…”

Ce bouton peut être mis dans un UpdatePanel.

Partager cet article

Repost 0
Published by Cyril - dans ASP.NET
commenter cet article

commentaires

Jamal 24/10/2010 17:00


Bonjour,
Comment aussi afficher une image d'attente, mais sans updateprogres...
Merci