Toon posts:

[JavaScript] Mag niet verzenden, doet het toch

Pagina: 1
Acties:
  • 139 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Misschien beetje vage topic titel, wat ik bedoel.
Ik heb een mailformulier dat als action iets post via
een pl-filetje.

Eerst kon je gewoon lege mailtjes sturen doordat er geen
controle achter zat. Die controle heb ik nu wel.
Ik heb de ballen verstand van Javascript, maar toch de controle
aan de praat gekregen, heb alleen 1 probleem:

Zodra de controle een fout tegenkomt, bijvoorbeeld dat er
geen naam is ingevuld, dan wordt de mail toch verzonden.

Hoe houd ik dat tegen?

Hier is het script:
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
<script type="text/javascript">
function validate()
{
x=document.mailform
at=x.email.value.indexOf("@")
name=x.realname.value
bericht=x.message.value
submitOK="True"
if (at==-1) 
 {
 alert("Dit is geen geldig e-mail adres")
 submitOK="False"
 }
if (name=="")
 {
 alert("U moet uw naam invullen")
 submitOK="False"
 }
if (message.length<2)
 {
 alert("Uw bericht moet meer tekst bevatten")
 submitOK="False"
 }
if (submitOK=="False")
 {
 return false
 }
}
</script>

Dit is het form action gedeelte:
code:
1
2
3
4
5
6
7
8
<form NAME="mailform" METHOD="POST" 
ACTION="http://www.skateboarding.nu/cgi-bin/formmail.pl" 
onsubmit="return validate()">
<input type="hidden" name="recipient" 
value="user@email.com"><input type="hidden" name="subject" 
value="Bericht vanaf de soos.nl"><input type="hidden" 
name="redirect" 
value="http://home.wanadoo.nl/~bowien/bedankt.html">

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

P&W -> W&G

Doet iets met Cloud (MS/IBM)


  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
code:
1
2
3
4
5
<form name="mailform" method="post" action="http://www.skateboarding.nu/cgi-bin/formmail.pl" onsubmit="validateBericht();">
<input type="hidden" name="recipient" value="user@email.com">
<input type="hidden" name="subject" value="Bericht vanaf de soos.nl">
<input type="hidden" name="redirect"  value="http://home.wanadoo.nl/~bowien/bedankt.html">
</form>


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script language="JavaScript" type="text/javascript">

function validateBericht() {
  errorMsg = "";

  if (document.mailform.email.value.indexOf("@") == -1) {
     errorMsg += "Het opgegeven emailadres is ongeldig\n\n";
     }
  if (document.mailform.realname.value =="") {
     errorMsg += "U moet uw naam invullen\n\n";
     }
  if (document.mailform.message.value.length < 2) {
     errorMsg += "Uw bericht moet meer tekst bevatten\n\n";
  }

  if (errorMsg != "") { 
     alert(errorMsg);
     return false;
  }
}

//edit: [co de] tag 2x niet afgesloten :P

Verwijderd

Topicstarter
Wow, dat ziet er wel vet uit.
Alleen, (vind het zelfs lullig om te zeggen) als ik nou na
die error op OK klik, dan wordt het mailtje alsnog _leeg_ verstuurd.

Hoe hou je dat tegen, kan ik niet vanuit het javascript
de action aanroepen oid?

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
code:
1
2
3
4
5
6
7
8
<form name="mailform" method="post" action="http://www.skateboarding.nu/cgi-bin/formmail.pl">
<input type="hidden" name="recipient" value="user@email.com">
<input type="hidden" name="subject" value="Bericht vanaf de soos.nl">
<input type="hidden" name="redirect"  value="http://home.wanadoo.nl/~bowien/bedankt.html">

<input type="button" name="verstuurButton" onClick="validate();">

</form>


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script language="JavaScript" type="text/javascript">
function validateBericht() {
  errorMsg = "";

  if (document.mailform.email.value.indexOf("@") == -1) {
     errorMsg += "Het opgegeven emailadres is ongeldig\n\n";
     }
  if (document.mailform.realname.value =="") {
     errorMsg += "U moet uw naam invullen\n\n";
     }
  if (document.mailform.message.value.length < 2) {
     errorMsg += "Uw bericht moet meer tekst bevatten\n\n";
  }

  if (errorMsg != "") { 
     alert(errorMsg);
     return false;
  } else {
     document.mailform.submit();
  }
}

ik weet niet zeker of dat document.mailform.submit(); zo klopt, maar 't lijkt 'r in ieder geval wel op..

khoop dat 't zo werkt .. geen tijd meer om het over te kijken want m'n broertje moet zo nodig op de compjoeter :P

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

als je wilt dat het niet gesubmit wordt moet je
code:
1
onSubmit return false;

gebruiken :)

mijn T.net systeemspecspagina


Verwijderd

Topicstarter
Op zondag 24 februari 2002 20:05 schreef RRX het volgende:
als je wilt dat het niet gesubmit wordt moet je
code:
1
onSubmit return false;

gebruiken :)
Die snap ik effe niet, waar vul ik dat in?
En werkt dat samen met het laatst geposte script van rObert?

Want die gebruik ik nu, en die doet het perfect, qua meldingen enzo
alleen stuurt ie nog steeds een leeg mailtje weg.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Bij mij werkt het scriptje prima en verstuurt ie geen mailtjes (?)

ik heb even een pagina geupload voor je
kiek hier 's

Verwijderd

Op zondag 24 februari 2002 22:21 schreef r0bert het volgende:
Bij mij werkt het scriptje prima en verstuurt ie geen mailtjes (?)

ik heb even een pagina geupload voor je
kiek hier 's
The form attempting to use FormMail resides at http://home.planet.nl/~wilde825/soos-mailForm.html, which is not allowed to access this cgi script.
If you are attempting to configure FormMail to run with this form, you need to add the following to @referers, explained in detail in the README file.

Add 'home.planet.nl' to your @referers array.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Dat klopt ja..

Het mailscriptje staat niet op 'mijn' server (planet) maar op die van de topicstarter.. vandaar dat je geen mail kan versturen..

Maar het ging er eigenlijk om, dat als er ongeldige waardes in waren gevoerd voor naam, email of het berichtje zelf, het hele formulier niet werd gepost ..

dus werkt op zich verder wel..

Verwijderd

Topicstarter
Hij doet t!

Bedankt rObert voor alle hulp.
Toen ik de source van je script zag, zag ik wat ik fout
had gedaan. Ik had mijn JavaScript tussen de <head></head>
tags staan.

Weet niet of het daar aan lag natuurlijk, want ik heb het
gelijk ff helemaal omgebouwd. Maar hij doet t nu :)

Nogmaals bedankt.
(Ook de reacties van andere)

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Ok dan ..

Verwijderd

Topicstarter
Op maandag 25 februari 2002 11:06 schreef r0bert het volgende:
Ok dan ..
We hebben gister het domein Laat maar zitten aangevraagd.
Mocht er nou op de website ook een link sectie komen.
Dan moet je maar ff ICQ-en of je een leuke homepage hebt
om er in te zetten.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
:) dat is niet nodig hoor, maar ik heb je toch even aan m'n icq toegevoegd want ik denk dat de modjes dit zo op het forum zitten te blaten niet echt op prijs stellen :P
Pagina: 1