[Vbs & ASP]2x submitten voorkomen

Pagina: 1
Acties:

  • 418O2
  • Registratie: November 2001
  • Niet online
Ik en mijn mede-stagair zijn hier aan het werk met asp en vbscript op intranet. We hebben al 1 en ander gescript, mede dankzij hulp van hier.

Maar nu hebben we een probleem wat een beetje klein lijkt, maar toch opgelost moet worden.

Onze pagina's moeten monkey, idiot en lowbrain proof zijn. Maar nu kwamen we er achter dat als je een submitbutton aanklikt met de muis en vervolgens heel snel er achter aan op enter drukt, dat het formulier 2x gesubmit wordt.

Maatregel die we genomen hebben zijn:

`- Er kan niet door middel van de enter knop ge-submit worden
`- Knop na indrukken disablen

Dit werkt allebij goed, maar als je ECHT snel klikt en op enter drukt wordt het formulier 2x gesubmit.

script met submit er in:

code:
1
2
3
4
function check()
document.form.ja.disabled=true
form.submit
End Function

Voor er gesubmit wordt, wordt de submit knop dus diabled. De function check wordt aangeroepen door een andere function die het formulier valideert (of er geen lege velden oid zijn)
code:
1
<form method="POST" name="form" action="insert.asp" onSubmit="return false">

Hierdoor kan er dus niet op enter worden gedrukt om te submitten als de submit knop niet is geselecteer (dmv tab oid).

Maar als je snel klikt dan wordt hij 2x gesubmit en krijg je duplicate value error in sql.. En ik heb op google gezocht op : Prevent button vbscript from being pressed twice.. ik kreeg geen goede reply's

edit:


ik heb het opgelost door in sql eerst de record te verwijderen die je toe wil voegen. Bestaat die nog niet dan is er geen probleem. Is die er wel wordt hij eerst verwijderd en dan weer toegevoegd. En hij kan er alleen zijn als je 2x hebt geklikt. Dus het probleem is opgelost, alleen niet op de manier zoals ik dat wou zien.

Ik werk op een andere webserver dan mijn mede-stagair. Op "mijn" server wil het dubbelklikken niet, maar op de zijne wel. Het web waar ik op werk is dus sneller dan de zijne. Het enige verschil dat we weten van die twee servers is dat de ene met 64bit encryptie werkt en de "mijne" met 128bits encryptie.

edit:

Kan het zijn dat 128bits encryptie sneller is dan 64bits encryptie ? Mijn mede-stagair (nick @ got JumboLambo ) stelt dat de key dan 2x langer is en trager te decoden is. Ik stel dat de 128bits encryptie nieuwer is en nieuwe techniek heeft dat sneller zou moeten kunnen decoden...

[ Voor 0% gewijzigd door 418O2 op 08-11-2002 09:42 . Reden: info added ]


  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
Allereerst wil ik graag kwijt dat ik het probleem een beetje gezocht vind. Alleen bij een langzame verbinding zullen mensen de neiging hebben vaker te klikken.
De oplossing om niet met enter te kunnen 'submitten' vind ik ook een slechte omdat je dan aan de standaardfunctionaliteit van een formulier gaat 'prutsen'.
Bovendien werkt de rest van internet vergelijkbaar. Zo hou je monkeys en idiots.

Maar nu mogelijke oplossingen.
Ik begrijp eruit dat de submitknop het script 'check' aanroept. Aangezien dit script het formulier zelf al 'submit' kun je hier misschien een gewone knop van maken die eerst wordt uitgeschakeld en dan het formulier submit? Of had je dat al gedaan?
De oplossing die eerst kijkt of het record al bestaat vind ik overigens wel goed. Het is altijd aan te raden de invoer te controleren voordat je wat verwerkt en dit niet af te laten hangen van het form.

  • 418O2
  • Registratie: November 2001
  • Niet online
xtra schreef op 08 november 2002 @ 10:22:
Allereerst wil ik graag kwijt dat ik het probleem een beetje gezocht vind. Alleen bij een langzame verbinding zullen mensen de neiging hebben vaker te klikken.
De oplossing om niet met enter te kunnen 'submitten' vind ik ook een slechte omdat je dan aan de standaardfunctionaliteit van een formulier gaat 'prutsen'.
Bovendien werkt de rest van internet vergelijkbaar. Zo hou je monkeys en idiots.

Maar nu mogelijke oplossingen.
Ik begrijp eruit dat de submitknop het script 'check' aanroept. Aangezien dit script het formulier zelf al 'submit' kun je hier misschien een gewone knop van maken die eerst wordt uitgeschakeld en dan het formulier submit? Of had je dat al gedaan?
De oplossing die eerst kijkt of het record al bestaat vind ik overigens wel goed. Het is altijd aan te raden de invoer te controleren voordat je wat verwerkt en dit niet af te laten hangen van het form.
Op je eerste gedeelte:

ik wil gewoon dat er NIETS fout kan gaan als ik dat kan voorkomen. En het werkt op intranet dus het is altijd snel. Maar ik wil dus gewoon dat het niet kan.

En je hebt mijn script niet gelezen:
code:
1
2
3
4
function check()
document.form.ja.disabled=true
form.submit
End Function

voor hij submit disabled hij de knop dus al.

Ik heb een heel lang VBscript die de validatie checkt. Is dit oke, dan roept hij check aan die het formulier submit

  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
Ik had het script wel gelezen en daarin gezien dat het formulier wordt verstuurd. Een knop type='submit' doet dat ook al. Vandaar mijn voorstel om een knop type='button' te gebruiken.

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 28-08 11:04
xtra schreef op 08 november 2002 @ 10:22:
Allereerst wil ik graag kwijt dat ik het probleem een beetje gezocht vind. Alleen bij een langzame verbinding zullen mensen de neiging hebben vaker te klikken.
De oplossing om niet met enter te kunnen 'submitten' vind ik ook een slechte omdat je dan aan de standaardfunctionaliteit van een formulier gaat 'prutsen'.
Bovendien werkt de rest van internet vergelijkbaar. Zo hou je monkeys en idiots.
heeft niet altijd met verbindingen te maken. Neem bijvoorbeeld het gebruik van componenten. Dit kost tijd om te initialiseren...

Dus het bestaat dat ondanks de snelheid van het internet een pagina gewoon tijd nodig heeft om te laden omdat hij gegevens doorberekend in een component...

Everyday's an endless stream, of cigarettes and magazines...


  • 418O2
  • Registratie: November 2001
  • Niet online
xtra schreef op 08 November 2002 @ 10:43:
Ik had het script wel gelezen en daarin gezien dat het formulier wordt verstuurd. Een knop type='submit' doet dat ook al. Vandaar mijn voorstel om een knop type='button' te gebruiken.
Ik gebruik ook een button..

code:
1
<input type="button" value="Toevoegen" name="ja" OnClick="form_func();document.form.ja.disabled=true">


Je gaat niet met een submit knop een validatie script aanroepen, dat zou lomp zijn.

Maar ik wou eigelijk hetvolgende nog wel weten
Kan het zijn dat 128bits encryptie sneller is dan 64bits encryptie ? Mijn mede-stagair (nick @ got JumboLambo ) stelt dat de key dan 2x langer is en trager te decoden is. Ik stel dat de 128bits encryptie nieuwer is en nieuwe techniek heeft dat sneller zou moeten kunnen decoden...
zou dat zo kunnen zijn?

  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
418O2 schreef op 08 november 2002 @ 10:51:
[...]

Je gaat niet met een submit knop een validatie script aanroepen, dat zou lomp zijn.
Eens :)

Ik heb altijd begrepen dat een grotere sleutel de encryptie langzamer maakt. Er wordt gebruik gemaakt van dezelfde techniek, waarbij de grotere sleutel meer rekenwerk vereist.
Pagina: 1