[html/JS] onSubmit wordt er niet meer ge-submit

Pagina: 1
Acties:

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
heej,

ik ben bezig om een hufterproof formuliertje te bouwen waarbij voorkomen wordt dat er tig-maal op de submitknop gedouwd kan worden.
Alles goed en wel; dat werkt.

Ik zou hier niet posten als er niet een 'maar' aanzat:
Maar: het formulier zelf wordt niet meer gepost.

Ik ben al bezig geweest om een submit function te maken die met een timeout het formulier post.
Dat werkte wel alleen dat brakke mail-a-form script van XS4all kan geen dynamisch opgebouwde action of value's behandelen :(
Dat heb ik er maar weer uitgeknikkerd.

Heeft iemand tipjes hoe dit aan te pakken?

nog ff lappie code:
(de basis waar het om draait)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
function submitonce(theform){
    if (document.all||document.getElementById){
        for (i=0;i<theform.length;i++){
        var tempobj=theform.elements[i]
        if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
        tempobj.disabled=true
        }
        alert("Een moment. Het formulier wordt verstuurd.");
    } 
    else
        alert("Hmm Netscape, nouja...\nEen moment.\nHet formulier wordt verstuurd.");
    return false
}
</script>
</head>

<body>
<form action="http://www.xs4all.nl/cgi-bin/mail-a-form" method="post" name="sollform" onSubmit="return submitonce(this);">
<input type="submit" name="submit" value="Versturen"><br>
<input type=reset name="submit2" value="Reset">
</form>


</body>
</html>

www.jurgroessen.nl


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16-09 18:23

Pelle

🚴‍♂️

* Pelle denkt dat het veel makkelijker kan

• manier 1: submit button in een layertje zetten, en onSubmit de layer hiden
• manier 2 (IE/DOM only): onSubmit de submitknop disabelen

Code voor manier 2:
code:
1
document.forms['formName'].elements['submit'].disabled="disabled";

/edit
Ik zie dat je zelf ook al aan disabelen gedacht had.. euhm dan stop je die functie toch gewoon in het onClick-event van de submit-button? Dan gaat hij gewoon submitten hoor...

/edit 2
Hmm.. dat lijkt ook niet te werken.. vaag, ik heb het ooit eens voor elkaar gekregen op deze manier. Denk dat het makkelijkst nu dan toch is om die layer onSubmit maar invisible te maken, of er een andere voor in de plaats te zetten.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16-09 18:23

Pelle

🚴‍♂️

Jaja, het is vrijdagmiddag en dan denken we allemaal weer veel te moeilijk, maar met een heeeel simpel scriptje kunnen we het ook oplossen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>geef ook eens een titel joh prutser</title>
    <script language="JavaScript" type="text/javascript">
    <!-- 
      aantalKeer = 0;
      function submitonce(){
        aantalKeer += 1;
        if (aantalKeer > 1) { 
            alert ('nee hoor');
            return false;
        } else { 
            alert('jaaaaaa!');
            return true;
        }
      }
    -->
    </script>
</head>

<body>

    <form action="http://www.xs4all.nl/cgi-bin/mail-a-form" method="post" name="sollform" onSubmit="return submitonce();">
      <input type="submit" name="submit" value="Versturen"><br>
      <input type=reset name="submit2" value="Reset">
    </form>


</body>
</html>

Je returnt trouwens false, no matter what. En ja, dan gaat hij niks submitten. Je moet dus kijken of er aan een bepaalde conditie is voldaan (in dit geval het al eenmaal verstuurd hebben van je form), en daarop return je false. In alle andere gevallen true.

/allerlaatste edit
functie is ook nog te herschrijven tot
code:
1
2
3
4
      function submitonce(){
        aantalKeer += 1;
        return (aantalKeer > 1) ? false : true;
      }

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
okee, Pelle, ik ga d'r eens naar kijken, dat zal alleen pas maandag worden want we kappen er mee voor vandaag.
BBBIIIEEERRR :+

www.jurgroessen.nl


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op vrijdag 16 november 2001 16:28 schreef Pelle het volgende:
/allerlaatste edit
functie is ook nog te herschrijven tot
code:
1
2
3
4
      function submitonce(){
        aantalKeer += 1;
        return (aantalKeer > 1) ? false : true;
      }
Sterker nog:
code:
1
2
3
function submitOnce () {
   return ( ++aantalKeer <= 1 );
}

;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16-09 18:23

Pelle

🚴‍♂️

Op vrijdag 16 november 2001 16:59 schreef drm het volgende:
Sterker nog:
code:
1
2
3
function submitOnce () {
   return ( ++aantalKeer <= 1 );
}
Tss.. uitslover :r ;)

/insiders only
Geen bier hier helaas, dus zorg maar voor een lekker flesje wijn morgen (of 2, of 3, oh nee, 3 is teveel van het goede :) )

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op vrijdag 16 november 2001 17:03 schreef Pelle het volgende:
Tss.. uitslover :r ;)
:D
/insiders only
Geen bier hier helaas, dus zorg maar voor een lekker flesje wijn morgen (of 2, of 3, oh nee, 3 is teveel van het goede :) )
Komt allemaal goed :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
<title>geef ook eens een titel joh prutser</title>
:D tsja, copy/paste werk in een nieuw document he...

Maar om meer on topic te komen:
okee, het werkt nu.
ik heb een combi gemaakt van je functie en het showen van een layer.
OnSubmit komt er een layer tevoorschijn waar met rood " Een moment. Het formulier wordt verstuurd" instaat.
Klik je daarna nogmaals op de submit dan krijg je een alert met de waarschuwing dat je op moet zouten :P

Voor de liefhebbers staat hier de testversie (niet teveel submitten; email komt bij mij terecht :P )

Pelle: 1000 x thnx
drm: thnx voor de besparing van bytes (offtopic: collega van willem169?)

www.jurgroessen.nl


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16-09 18:23

Pelle

🚴‍♂️

Op maandag 19 november 2001 11:25 schreef Hangloozz het volgende:
Pelle: 1000 x thnx
Y're welcome :)
drm> offtopic: collega van willem169?
Yep.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op maandag 19 november 2001 11:25 schreef Hangloozz het volgende:
drm: thnx voor de besparing van bytes (offtopic: collega van willem169?)
hehehe :) no problem. Hij kan afgezien van de haakjes nog 1 karakter korter, maar dat laat ik aan jullie over :P

Idd collega van willem169. Why's that?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16-09 18:23

Pelle

🚴‍♂️

Op maandag 19 november 2001 11:50 schreef drm het volgende:
hehehe :) no problem. Hij kan afgezien van de haakjes nog 1 karakter korter, maar dat laat ik aan jullie over :P
* Pelle heeft te weinig koffie op en zegt dat het nog veel korter kan
code:
1
<form onSubmit="return (++a<2);">

Niet getest, maar moet gewoon werken lijkt me :)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op maandag 19 november 2001 11:55 schreef Pelle het volgende:

[..]

* Pelle heeft te weinig koffie op en zegt dat het nog veel korter kan
code:
1
<form onSubmit="return (++a<2);">

Niet getest, maar moet gewoon werken lijkt me :)
:D
Zonder functie-definitie kom je een heel end, ja ;)
Laten we maar niet over schaalbaarheid beginnen

[ultimate mierenneuk mode MODETYPE="EXTREME"]
++a < 2 is niet helemaal eerlijk, want 2 is in principe een waarde die hier nergens op slaat.

> Hoeveel?
< Nou, 2.
> 2 wat?
< 2, meneer.


Dan zou ik zeggen, maak er:
a++ < 1 van.
[/ultimate mierenneuk mode]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16-09 18:23

Pelle

🚴‍♂️

Op maandag 19 november 2001 12:00 schreef drm het volgende:
Laten we maar niet over schaalbaarheid beginnen
Schaalbaarheid is voor mietjes!
;)
++a < 2 is niet helemaal eerlijk, want 2 is in principe een waarde die hier nergens op slaat.
Hmja okay, maar zoals ik al zei: te weinig koffie op vandaag :)
Leuk feesie trouwens, zaterdag :+

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
* Hangloozz vraagt aan de GoT-koffiejuffrouw met spoed 2 koffie voor Pelle en drm.
Zonder caffeïne zo doordraven kan nooit goed zijn. :D

www.jurgroessen.nl


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op maandag 19 november 2001 12:04 schreef Pelle het volgende:
Hmja okay, maar zoals ik al zei: te weinig koffie op vandaag :)
:D
Leuk feesie trouwens, zaterdag :+
true true.

Laten we maar verder gaan op ICQ, want anders krijgen we nog boze modjes op onze dak :P

//offtopic

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1