[js] onclick submit

Pagina: 1
Acties:

  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

Topicstarter
Stukje code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
  print "<pre>";
  print_r ($_REQUEST);
  print "</pre>";

?>

<form method=post>
  <input type=text name=u size=10 value='abc'>
  <input type=text name=p size=10 value='def'>  
  <input type=submit name=s value='clickme' onClick="this.form.submit(); this.disabled=1; return false;">
</form>


Als javascript is gedisabled, doet het gewoon een form verzenden met u,p en s als variabelen in de $_REQUEST. Zodra javascript is geenabled, moet de form worden verstuurd en de submitknop worden gedisabled. Hij doet dit wel, maarrr,.. "s" wordt niet meestuurd, waarschijnlijk omdat deze gedisabled is.

Waarom neemt submit() mijn (op-dat-moment-nog-niet-gedisablede) "s" niet mee?

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 21-04 13:13
Omdat je niet op de knop drukt, en dus die var niet geset wordt.
Die 's' heb je overigens ook helemaal nergens voor nodig. Je kunt gewoon uit de $_SERVER['REQUEST_METHOD'] uitlezen of er een formulier is gepost of dat de pagina via een get-request is geopend.
Die if($Submit)-geintjes zijn zo smerig :r

  • SilencerNL
  • Registratie: Juli 2002
  • Laatst online: 13:34

SilencerNL

No remorse

en als je 's' graag wilt hebben, kan je toch ook een hidden field maken?

Don't dream your life, live your dreams!


  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

Topicstarter
Er wordt geen gebruik gemaakt van php. Dit is alleen maar even ter verduidelijking in een vereenvoudigd voorbeeld. Extra inputfields etc werkt natuurlijk, maar dat is niet waar ik heen wil.

Hoezo wordt er niet op de knop gedrukt?

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

Topicstarter
Het "probleem" is dat submit() niet precies doet wat hij zegt. Hij submit niets, hij "scheduled" een submit.

Eerst wordt de complete handler afgewerkt. Dus in dit geval, wordt er een input gedisabled VOORDAT de submit daadwerkelijk plaatsvindt. Dit is te zien door een alert() in de handler op te nemen. Deze zal eerst moeten worden weggeklikt voordat de daadwerkelijke submit plaatsvindt. (kan nog worden gediscussieerd worden of een alert-box modaal wordt aangeroepen en dus alles blokkeert, maar ik denk dat dat geen invloed heeft op de submit inzoverre).

conclusie:
je kunt op deze manier nevernooitniet een button disabelen na een click, terwijl de waarde van de inputbutton wordt meegegeven.

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

je kunt ook proberen om het form een onSubmit-handler mee te geven, waarin je die submit-button disabled. Mocht het dan nog steeds niet werken, dan is een mogelijke oplossing (ok, geen nette) om het in die onSubmit-handler te doen met een setTimeout op 100 ofzo.

Je kunt ook op de pagina die het form verwerkt checken of er post-variabelen doorgegeven zijn, dan weet je (goed als) zeker dat je formuliertje op de post gegooid is.

[ Voor 26% gewijzigd door wizzkizz op 06-12-2005 11:24 ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Dan is de vraag, waarom op deze manier? Waar wil je naar toe? Mischien is er een andere oplossing, wat mischien wel beter werkt.
Pagina: 1