Empêcher "multiclique"

alloyves Messages postés 15 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 28 mars 2011 - 21 nov. 2007 à 11:57
alloyves Messages postés 15 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 28 mars 2011 - 28 nov. 2007 à 14:06
Bonjour,

Je sais pas si j'ai choisi le bon thème mais voici mon problème : Je développe une appli web en VB.NET dont la première page est un formulaire à remplir. J'ai un bouton envoyer qui permet d'enregistrer le formulaire dans la base de données. Une fois le formulaire rempli on revient sur cette même page sur laquelle j'applique un calque. Mais voilà mon problème : lorsque l'utilisateur clique sur envoyer, la page attend d'avoir effectuer tout le code présent dans la procédure btnEnvoyer_onClick avant de rafraîchir la page. Résultat : l'utilisateur a la possibilité de cliquer plusieurs fois et donc de créer plusieurs fois le même formulaire.
Y'a-t-il un moyen de limiter le nombre de clique sur le bouton ou alors est-ce qu'on ne peut pas forcer le serveur à rafraîchir plus ou moins la page avant d'éxecuter la suite de la procédure ?

5 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
21 nov. 2007 à 16:50
Tu désactives le bouton avec du code JavaScript
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
0
alloyves Messages postés 15 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 28 mars 2011 1
21 nov. 2007 à 17:22
Ouais alors la le javascript j'suis mauvais...
Mais j'ai quand même essayé ça :

<script type="text/javascript">
function toogleBtnEnvoyer()
{
btnenvoyer.style.display = false
}

But...ça en marche pas : 'javascript' n'est pas un membre de 'ASP.demand_aspx'

Où ai-je fait une erreur ?
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
21 nov. 2007 à 18:06
ne mets pas avant l'appel de la fonction "javascript:"
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
0
alloyves Messages postés 15 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 28 mars 2011 1
21 nov. 2007 à 18:29
Même prob sauf que l'élément qui n'est pas membre c'est ... toogleBtnEnvoyer.

Mais j'ai trouvé une autre solution que je vais bien sûr partagée :



Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Not ClientScript.IsOnSubmitStatementRegistered(Me.GetType, "OnSubmitScript") Then
Dim cstext As String "if (typeof(ValidatorOnSubmit) 'function' && ValidatorOnSubmit() == false)return false; else {var myCtl = document.getElementById('" + Me.Button2.ClientID + "'); myCtl.value = 'Un instant...'; myCtl.disabled = true;}"
ClientScript.RegisterOnSubmitStatement(Me.GetType, "OnSubmitScript", cstext)
End If
End Sub

En fait ça revient à ce que tu me disais mais on là on "met" le javascript dans le behind code... Ouais je suis pas très clair...

http://www.dotnetguru.org/articles/aspnet/events/EventASPNET1.htm
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alloyves Messages postés 15 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 28 mars 2011 1
28 nov. 2007 à 14:06
En fait j'ai toujours un problème... Mon bouton se met "en attente" dès que je clique sur un bouton qui lance une procèdure... Est-ce qu'il serait possible d'éxecuter ma fonction seulement si la procèdure button2_click est appelée ???
0
Rejoignez-nous