webForumDet fria alternativet

förhindra dubbelklickning

.NET

8 svar · 382 visningar · startad av Nöff

Medlem sedan nov. 2003569 inlägg
Frågan#1

Hej..

Finns det nåt bra sätt att förhindra dubbleklickningar på Buttons som har en händelsehanterare på sig?.

Button.Attributes.Add("onClick", "javascript:return confirm('Vill du gå vidare?')");

funkar ju inte om det är långa svarstider från servern eftersom då hinner dom submitta och svara JA på frågan ett antal gånger innan servern hunnit generera ett svar.

Medlem sedan dec. 19996 522 inlägg
#2

Sätta den till disabled direkt vid klick metoden?

Medlem sedan nov. 2003569 inlägg
#3

nä det funkar inte det heller :( då postar den inte tillbaka alls.

jag skulle vilja ha både en confirm och när man trycker JA så ska den bli disablad.

Medlem sedan apr. 2004778 inlägg
#4

En tanke är att du istället för att lägga return confirm på knappen anropar en egen JS funktion. Den funktionen kör en confirm och om svaret är True (dvs Ja) så skickar den True till knappen som då submittar.
För att kolla om knappen har tryckts ner tidigare kan du antingen ha en variabel som sätts till False när sidan laddas. När funktionen börjar kollar den om variabeln är False. Om den är False kör den confirm och sätter variabeln till True. Om den är True så kan du antingen skicka tillbaka False så inget händer eller så gör du en Alert först om att dom inte ska klicka flera gånger.
På det sättet så kommer variabeln att vara True när de klickar andra gången och inget händer.
Andra sättet är att JS-funktionen sätter knappen till disabled om man klickat på Ja i confirm.

Medlem sedan nov. 2003569 inlägg
#5

jo har provat det också:

Button1.Attributes.Add("onClick","javascript:if(confirm()==true) { disabled=true; }");

Men när man klickat OK på confirm blir knappen disablad men då slutar händelsehanteraren att fungera... Och om man trycker Cancel så då körs händelsen istället.. knepigt

Det enda som egentligen funkar är denna:

Button1.Attributes.Add("onDblClick", "javascript:disabled=true");

Men då kan man inte samtidigt ha en confirm ruta. :l

Medlem sedan apr. 2004778 inlägg
#6

Nja, nu missförstod du mig. Du ska inte ha någon confirm i knappattributet. Istället ska du ha en komplett javascript funktion på sidan.
T.ex.

disabled = False;

function btnCheck()
{
 if disabled alert('Inga dubbelklick')
 else {
   if return confirm('Är du säker') {
     disabled = True;
      return True
   } else {
      return False
   }
  }
 }
}

Nu är min JS lite rostig men jag tror att du förstår upplägget.

Å andra sidan, när du lägger onDblClick som du gjort, kan du inte lägga till ett attribut till onClick?

Medlem sedan apr. 2004778 inlägg
#7

Fick du det att funka eller?
Annars så hittade jag en länk till en lösning http://aspzone.com/articles/207.aspx

Medlem sedan nov. 2003569 inlägg
#8

njae. det verkar vara helt omöjligt att få till en confirm ruta först och om man klickar på OK ska den bli disablad.

Medlem sedan nov. 2003569 inlägg
#9

Löste det :h

Button1.Attributes.Add("onClick","javascript:if(confirm('tjena')==true) { this.disabled=true;" + this.GetPostBackEventReference(this.Button1) + " }else { return false; }");

tack för hjälpen

267 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)