Overblog
Editer l'article Suivre ce blog 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
Repost0

commentaires

J

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


Répondre