Avatar billede jalaboo Nybegynder
15. april 2002 - 15:47 Der er 9 kommentarer

Undgå dobbeltklik

Hvordan kan jeg via JavaScript sørge for at brugeren ikke kan klikke 2 gange på submit og dermed sende samme data 2 gange?
Avatar billede muddi Praktikant
15. april 2002 - 15:55 #1
Du kan lave et javascript, som får knappen til at forsvinde, når der er submittet én gang!
Avatar billede muddi Praktikant
15. april 2002 - 16:05 #2
<script>
/* Javascript, som tjekker at felterne navn og besked er udfyldt.
Send-knappen fjernes og alle felterne bliver read-only, når formularen submittes */
<!--
var sentTimes = 0
function SendMail() {
if (sentTimes == 0) {
  if ((navigator.userAgent.indexOf("MSIE 5") > -1) || navigator.userAgent.indexOf("MSIE 6") > -1)) {
  document.all['buttons'].innerHTML = "Vent venligst, mens der skrives ...";

  document.formular.felt1.readOnly = true;
  document.formular.felt2.readOnly = true;
  document.formular.felt3.readOnly = true;
  }
document.guestbook.submit();
}
else
  alert("Brevet er ved at blive sendt... Øjeblik...");
  sentTimes++;
}
//-->
</script>

Dette script skal indsættes på din side, og der hvor submitknappen skal være indsætter du flg. kode:

<div id="mailButtons">
  <input type="submit" name="submit">
</div>


Kald dine felter for felt1, felt2, felt3 osv. og kald formularen for "formular" :o)
Avatar billede muddi Praktikant
15. april 2002 - 16:07 #3
<script type="text/javascript">
/* Javascript som fjerner send-knappen ved submit og alle felterne bliver read-only */
<!--
var sentTimes = 0
function SendMail() {
if (sentTimes == 0) {
  if ((navigator.userAgent.indexOf("MSIE 5") > -1) || navigator.userAgent.indexOf("MSIE 6") > -1)) {
  document.all['mailButtons'].innerHTML = "Vent venligst, mens der skrives ...";

  document.formular.felt1.readOnly = true;
  document.formular.felt2.readOnly = true;
  document.formular.felt3.readOnly = true;
  }
document.formular.submit();
}
else
  alert("Brevet er ved at blive sendt... Øjeblik...");
  sentTimes++;
}
//-->
</script>

Nu skulle det virke... der var lige nogen småfejl :o)
Avatar billede muddi Praktikant
15. april 2002 - 16:12 #4
Din formular skal så ligne flg.:

<form name="formular" method="POST" action="fil.pl" onSubmit="SendMail(); return false;">
<input type="text" name="felt1">
<input type="text" name="felt2">
<input type="text" name="felt3">

<div id="mailButtons">
  <input type="submit" name="submit">
</div>
</form>
Avatar billede ras2000 Nybegynder
18. april 2002 - 08:14 #5
Du kan også lave det en smule simplere.
<input type="submit" value="ok"> er vel din submit knap.
<input type="submit" value="ok" onclick="this.disabled=true"> VIlle kun kunne sende formen en gang. Hvis det skal være en smule avanceret kan du også ændre teksten på din knap:
<input type="submit" value="ok" onclick="this.disabled=true;this.value='ej ok'">
Avatar billede ras2000 Nybegynder
18. april 2002 - 08:15 #6
svar
Avatar billede muddi Praktikant
07. juni 2002 - 15:21 #7
jalaboo >> Lukker du snart dette spm.?
Avatar billede jmc Nybegynder
25. marts 2003 - 18:49 #8
<input type="submit" value="ok" onclick="this.disabled=true;this.value='ej ok'">
den går ikke videre når der ovenover er et dokument som hedder: "<form action=tilmeld.asp method=post onSubmit=""MM_validateForm('Navn','','R','Telefonnummer','','RisNum');return document.MM_returnValue"">"
Avatar billede jmc Nybegynder
25. marts 2003 - 18:52 #9
<form name="formular" method="POST" action="fil.pl" onSubmit="SendMail(); return false;">

virker heller ikke sammen med:

"<form action=tilmeld.asp method=post onSubmit=""MM_validateForm('Navn','','R','Telefonnummer','','RisNum');return document.MM_returnValue"">"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester