Toon posts:

Dubbele submit (door simultane 2 events) van form voorkomen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik heb een tabel waarvan de headers klikbaar zijn. Niet alleen de teksten, maar de hele TD.

Je hebt dan iets als

<TD onclick="submitForm()"><A HREF="javascript:submitForm();">TEKST</A></TD>
(en dat een paar keer met verschillende tekstjes en telkens een andere parameter voor de submitForm)

Wanneer je niet op de tekst, maar wel in de cel klikt, wordt de submitForm() 1 keer aangeroepen.

Wanneer je op de link klikt echter 2 keer - een keer door de onclick en 1 keer door de A HREF.

Een controle of er al een submit geweest is om de tweede vervolgens niet te doen levert inderdaad maar 1 submit op, echter de 2e evaluatie vindt wel plaats waardoor de browser de output van de server als reactie op het request negeert.

De eerste negeren kan uiteraard ook niet, want als iemand wel in de cel, maar niet op de link klikt, zal er maar 1 submit zijn...

Iemand een javascript truukje om dit te omzeilen?

  • bakakaizoku
  • Registratie: Januari 2002
  • Laatst online: 19-08 23:56
.

[ Voor 100% gewijzigd door bakakaizoku op 21-11-2003 15:00 . Reden: quote ipv edit ]

rm -rf ~/.signature


  • bakakaizoku
  • Registratie: Januari 2002
  • Laatst online: 19-08 23:56
mattttt schreef op 21 november 2003 @ 14:59:
even uit m'n hoofd hoor

Java:
1
2
3
4
5
6
7
8
9
10
var geklikt = false;

function submitForm() {
if (geklikt == false) { 
document.form[0].submit();
geklikt = true; } 
else { 
alert("Je hebt al geklikt!"); 
return false; }
}


dunnow of het goed is :)

rm -rf ~/.signature


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

waarom een anchor gebruiken? een handje kan je met een CSS cursor style ook bewerkstelligen:
HTML:
1
<td onclick="submitForm()"><span class="handje">TEKST</span></td>

de klik op de text zal uiteindelijk ook de onclick van de td triggeren (event bubbling)

Intentionally left blank


Verwijderd

Topicstarter
Is al gevonden...

na de submitForm() even return false...

Verwijderd

Topicstarter
crisp schreef op 21 november 2003 @ 15:02:
waarom een anchor gebruiken? een handje kan je met een CSS cursor style ook bewerkstelligen:
HTML:
1
<td onclick="submitForm()"><span class="handje">TEKST</span></td>

de klik op de text zal uiteindelijk ook de onclick van de td triggeren (event bubbling)
Niet alle browsers ondersteunen die onclick van de td, vandaar...

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 21 november 2003 @ 15:03:
[...]


Niet alle browsers ondersteunen die onclick van de td, vandaar...
oh die browsers uit het stenen tijdperk bedoel je? ;)

Intentionally left blank


Verwijderd

anders in je event van a even de bubble cancellen: event.cancelBubble = true;

(is iig de oorzaak bestrijden en niet de symptonen)

[ Voor 27% gewijzigd door Verwijderd op 21-11-2003 16:34 ]

Pagina: 1