/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Formmail og validering af felter
Fra : Torben Lange-Pederse~


Dato : 08-02-06 13:44

Hej

Jeg har en formular som sendes via formmail. Jeg vil gerne validere at
felterne er udfyldt inden afsendelse. Jeg har derfor lavet et script der
validerer felterne. Formularen virker og scriptet bliver kaldt og udført.

Men selvom felterne er tomme, bliver formmailen sendt. Jeg ville jo gerne af
afsendelsen bliver afbrudt, således at brugeren kan udfylde formularen
korrekt.

Uddrag af JavaScript koden:

---klip---
function validate() {
if (document.form1.navn.value.length == 0)
{
alert("Du skal skrive dit navn");
document.form1.navn.focus();
return (false);
} //endif
else
---klip---

Uddrag af form'en:

---klip---
<FORM name="form1" method="post" action="/cgi-bin/FormMail.pl"
onSubmit="validate(form1);">
---klip---

Hvad er der galt?

Med venlig hilsen

Torben



 
 
Leif Neland (08-02-2006)
Kommentar
Fra : Leif Neland


Dato : 08-02-06 17:01

Torben Lange-Pedersen wrote:
> Hej
>
> Jeg har en formular som sendes via formmail. Jeg vil gerne validere at
> felterne er udfyldt inden afsendelse. Jeg har derfor lavet et script
> der validerer felterne. Formularen virker og scriptet bliver kaldt og
> udført.
> Men selvom felterne er tomme, bliver formmailen sendt. Jeg ville jo
> gerne af afsendelsen bliver afbrudt, således at brugeren kan udfylde
> formularen korrekt.

> ---klip---
> <FORM name="form1" method="post" action="/cgi-bin/FormMail.pl"
> onSubmit="validate(form1);">
> ---klip---
>
> Hvad er der galt?

Du mangler "return"

onSubmit="return validate(form1);">


Fra http://www.htmlcodetutorial.com/forms/_FORM_onSubmit.html

Note that in order to cancel the submit event, the onSubmit should be in the
form onSubmit="return expression". "return" indicates that the value of the
expression should be returned to the submit routine. If the expression
evaluates to false, the submit routine is cancelled; if it is true, the
submit routine goes forward

Leif



Torben Lange-Pederse~ (08-02-2006)
Kommentar
Fra : Torben Lange-Pederse~


Dato : 08-02-06 17:59


"Leif Neland" <leif@neland.dk> skrev i en meddelelse
news:7BoGf.5204$SA7.2843@news.get2net.dk...
> Torben Lange-Pedersen wrote:
>> Hej
>>
>> Jeg har en formular som sendes via formmail. Jeg vil gerne validere at
>> felterne er udfyldt inden afsendelse. Jeg har derfor lavet et script
>> der validerer felterne. Formularen virker og scriptet bliver kaldt og
>> udført.
>> Men selvom felterne er tomme, bliver formmailen sendt. Jeg ville jo
>> gerne af afsendelsen bliver afbrudt, således at brugeren kan udfylde
>> formularen korrekt.
>
>> ---klip---
>> <FORM name="form1" method="post" action="/cgi-bin/FormMail.pl"
>> onSubmit="validate(form1);">
>> ---klip---
>>
>> Hvad er der galt?
>
> Du mangler "return"
>
> onSubmit="return validate(form1);">
>
Desværre løser det ikke problemet. Formularen sendes stadig

Torben



Holst (08-02-2006)
Kommentar
Fra : Holst


Dato : 08-02-06 18:08


Torben Lange-Pedersen wrote:

>>>---klip---
>>> <FORM name="form1" method="post" action="/cgi-bin/FormMail.pl"
>>>onSubmit="validate(form1);">
>>>---klip---
>>>
>>>Hvad er der galt?
>>
>>Du mangler "return"
>>
>>onSubmit="return validate(form1);">
>>
> Desværre løser det ikke problemet. Formularen sendes stadig

Du skal ikke have den i din <form>. Lavede engang noget i stil med på
"Send"-knappen:

<input name="send" type="submit" onClick="checkform(...); return"
value="Send">

og det virkede bortset fra at jeg ikke kunne få min javascript til at
virke, men det er jo et helt andet problem.

Leif Neland (09-02-2006)
Kommentar
Fra : Leif Neland


Dato : 09-02-06 08:28

Torben Lange-Pedersen wrote:
> Hej
>
> Jeg har en formular som sendes via formmail. Jeg vil gerne validere at
> felterne er udfyldt inden afsendelse. Jeg har derfor lavet et script
> der validerer felterne. Formularen virker og scriptet bliver kaldt og
> udført.

Er du sikker på at scriptet kører færdigt? Prøv at sætte en 'alert("Form
OK")' i bunden af scriptet.

> Uddrag af JavaScript koden:
>
> ---klip---
> function validate() {
> if (document.form1.navn.value.length == 0)
> ---klip---
>
> Uddrag af form'en:
>
> ---klip---
> <FORM name="form1" method="post" action="/cgi-bin/FormMail.pl"
> onSubmit="validate(form1);">
> ---klip---
>
> Hvad er der galt?

Som tidligere sagt: onSubmit="return validate(form1);"

Så er det lidt sjusket, at du kalder validate(form1), når du ikke bruger
parametren form1, men refererer direkte til document.form1.... i funktionen.

Du kan bruge <form ... onSubmit="return validate(this)">
og i scriptet have
function validate(denne) {
if (denne.navn.value.length == 0)

Men altså, vær sikker på at din funktion kører til ende.
Du kan også teste ved at sætte et "return false" i starten af funktionen, så
du kan se at submitningen virkelig stoppes af en false.


Leif



Torben Lange-Pederse~ (10-02-2006)
Kommentar
Fra : Torben Lange-Pederse~


Dato : 10-02-06 11:25

Tak for hjælpen



Søg
Reklame
Statistik
Spørgsmål : 177553
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste