/ 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
Formular-validering
Fra : Erik Ginnerskov


Dato : 26-02-09 15:41

Hej NG

Sidder og prøver på at lave et stop i en formular, hvis der mangler
udfyldning af krævede felter.

I sidens head:

<script type="text/javascript" src="val.js"></script>

I formularens starttag er tilføjet:

onsubmit="return validate_form(this)"

Indhold af val.js:

function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
{alert(alerttxt);return false;}
else {return true}
}
}

function validate_form(thisform)
{
with (thisform)
{
if (validate_required(contact_firmname,"Feltet 'Virksomheden'
skal udfyldes!")==false)
{email.focus();return false;}
if (validate_required(contact_firmadr,"Feltet 'hjemmeside' skal
udfyldes!")==false)
{email.focus();return false;}
if (validate_required(navn,"Feltet 'For- og efternavn' skal
udfyldes!")==false)
{email.focus();return false;}
if (validate_required(mail,"Feltet 'email-adresse' skal
udfyldes!")==false)
{email.focus();return false;}
if (validate_required(emne,"Feltet 'Produkt' skal
udfyldes!")==false)
{email.focus();return false;}
}
}

Hvis et krævet felt lades tomt, kommer der godt nok en alert. Men når den
lukkes, sendes mailen alligevel - der returneres ikke som ønsket til
formularen og med focus på det tomme felt.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk



 
 
Stig Johansen (26-02-2009)
Kommentar
Fra : Stig Johansen


Dato : 26-02-09 16:06

Erik Ginnerskov wrote:

> Sidder og prøver på at lave et stop i en formular, hvis der mangler
> udfyldning af krævede felter.
>
> I sidens head:
>
> <script type="text/javascript" src="val.js"></script>
>
> I formularens starttag er tilføjet:
>
> onsubmit="return validate_form(this)"
>
> Indhold af val.js:

Du, Erik - et link ville være bedre end at liste kode her

> function validate_required(field,alerttxt)
> {
> with (field)

At bruge with er ikke god karma for kodehajer, 'nemt' at bruge, men
besværligt at fejlfinde i.

> function validate_form(thisform)
> {
> with (thisform)
> {
> if (validate_required(contact_firmname,"Feltet 'Virksomheden'
> skal udfyldes!")==false)
> {email.focus();return false;}

I store træk ville jeg nok anbefale at sætte id på de givne tags, og bruge
getElementById i stedet for implicitte navngivninger.

Det foresvæver mig, at der engang har været problemer med visse browsere i
den forbindelse.

Lav evt. en konstruktion a lá:
var contact_firmname = getElementById('contact_firmname');
if (contact_firmname < '!') {
alert ('Feltet virksomhed skal udfyldes'(;
contact_firmname.focus();
return false;
}

Ved at bruge <'!' tjekker man også på blank.

> Hvis et krævet felt lades tomt, kommer der godt nok en alert. Men når den
> lukkes, sendes mailen alligevel - der returneres ikke som ønsket til
> formularen og med focus på det tomme felt.

Du bruger email.focus(); uagtet det ikke fremgår af dit script, måske fejler
det der.

Jeg siger ikke noget, men et link til problemet ville hjælpe

--
Med venlig hilsen
Stig Johansen

Erik Ginnerskov (26-02-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 26-02-09 17:16


"Stig Johansen" <wopr.dk@gmaill.com> skrev i meddelelsen
news:49a6b003$0$90275$14726298@news.sunsite.dk...

> Du, Erik - et link ville være bedre end at liste kode her

I mange tilfælde ja. Men nu skønnede jeg, at det ville komplicere
fejlfindingen at skulle uddrage koden af et link på den færdige side. Du
klarede i øvrigt så mesterligt at gennemskue problemet ud fra hvad jeg havde
sendt her.

>> function validate_required(field,alerttxt)
>> {
>> with (field)
>
> At bruge with er ikke god karma for kodehajer, 'nemt' at bruge, men
> besværligt at fejlfinde i.

Mange veje fører til Rom. Nu fandt jeg dette script og tilrettede det til
den aktuelle formular.

> I store træk ville jeg nok anbefale at sætte id på de givne tags, og bruge
> getElementById i stedet for implicitte navngivninger.

Der er faktisk allerede id på alle inputfelter, men nu ver det hvad jeg
vandt ved googling.

> Det foresvæver mig, at der engang har været problemer med visse browsere i
> den forbindelse.

Det er nu afprøvet i IE og FF og det fungerer.

> Lav evt. en konstruktion a lá:

> var contact_firmname = getElementById('contact_firmname');
> if (contact_firmname < '!') {
> alert ('Feltet virksomhed skal udfyldes'(;
> contact_firmname.focus();
> return false;
> }
>
> Ved at bruge <'!' tjekker man også på blank.

Den prøver jeg senere på ugen.

> Du bruger email.focus(); uagtet det ikke fremgår af dit script, måske
> fejler
> det der.

Det var da der, jeg bommede. Jeg havde glemt at rette de steder i scriptet,
hvor der defineres hvortil der skal returneres med focus.

Jeg bukker og takker, det kom som sagt til at fungere.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Erik Ginnerskov (26-02-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 26-02-09 23:59

Erik Ginnerskov wrote:

> Det var da der, jeg bommede. Jeg havde glemt at rette de steder i
> scriptet, hvor der defineres hvortil der skal returneres med focus.

Jeg har nu lavet en udbygning på scriptet for at fange ikke-valid
indtastning i email-feltet. Tilsyneladende kan den fange manglende @ og også
et manglende . et sted efter @ - men hvis der forekommer et mellemrum i
indtastningen, kommer der noget uforudset retur fra serveren.

http://hjemmesideskolen.dk/usenet/js/formular.asp

Følgende er blevet tilføjet:

function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
if (apos<1||dotpos-apos<2)
{alert(alerttxt);return false;}
else {return true;}
}
}

function validate_form(thisform) // var der i forvejen
{ // var der i forvejen
with (thisform) // var der i forvejen
{ // var der i forvejen
if (validate_email(mail,"Det er ikke en gyldig e-mail adresse!")==false)
{mail.focus();return false;}
} // var der i forvejen
} // var der i forvejen

Det kunne også være rart, om ugyldige tegn blev fanget.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Stig Johansen (27-02-2009)
Kommentar
Fra : Stig Johansen


Dato : 27-02-09 02:27

Erik Ginnerskov wrote:

> Jeg har nu lavet en udbygning på scriptet for at fange ikke-valid
> indtastning i email-feltet. Tilsyneladende kan den fange manglende @ og
> også et manglende . et sted efter @ - men hvis der forekommer et mellemrum
> i indtastningen, kommer der noget uforudset retur fra serveren.

Vi har for nylig haft en s*tans lang tråd om validering, hvor også email
indgår.
Den startede d. 10.1 med overskriften "Tjek dato"

Langt nede i tråden (17.2) er der lidt diskussion frem og tilbage med Peter,
også email validering.

Hans valideringsrutine lignede din - SVJH, men han har ikke vendt tilbage om
det virkede.

--
Med venlig hilsen
Stig Johansen

Erik Ginnerskov (27-02-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 27-02-09 14:29

Stig Johansen wrote:

> Langt nede i tråden (17.2) er der lidt diskussion frem og tilbage med
> Peter, også email validering.

Så godt den tråd. Men da den for det første indledningsvis handler om noget
helt andet og dernæst - som du selv skriver - blev s*tans lang, havde jeg
fravalgt at følge med, da jeg ikke lige har brug for at tjekke ugedag i
forhold til dato.

> Hans valideringsrutine lignede din - SVJH, men han har ikke vendt
> tilbage om det virkede.

Jeg bruger tid på at skimme tråden men har lige kigget på dit indlæg fra
17/2. Jeg gætter på, at de to første kodelinjer skal skrives som en - eller
skal det stå på de to linjer?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Jens Peter Karlsen (27-02-2009)
Kommentar
Fra : Jens Peter Karlsen


Dato : 27-02-09 20:59

Det her checker for mellemrum:
tegn=tekst.indexOf(" ");
if(tegn!=-1){
alert ("Der må ikke være mellemrum i adressen");
error = 1;
}

Regards Jens Peter Karlsen.

On Fri, 27 Feb 2009 14:29:23 +0100, "Erik Ginnerskov"
<erik.ginnerskov@live.dk> wrote:

>Så godt den tråd. Men da den for det første indledningsvis handler om noget
>helt andet og dernæst - som du selv skriver - blev s*tans lang, havde jeg

Erik Ginnerskov (28-02-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 28-02-09 23:09

Jens Peter Karlsen wrote:
> Det her checker for mellemrum:
> tegn=tekst.indexOf(" ");
> if(tegn!=-1){
> alert ("Der må ikke være mellemrum i adressen");
> error = 1;
> }

Jeg har tillid til, at det virker. Men Stigs kontrolrutine er mere
gennemgribende, så jeg bruger den i stedet. Men tak alligevel.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Stig Johansen (28-02-2009)
Kommentar
Fra : Stig Johansen


Dato : 28-02-09 05:05

"Erik Ginnerskov" <erik.ginnerskov@live.dk> wrote in message
news:49a7eab5$0$90269$14726298@news.sunsite.dk...
> Stig Johansen wrote:
>
> > Hans valideringsrutine lignede din - SVJH, men han har ikke vendt
> > tilbage om det virkede.
>
> Jeg bruger tid på at skimme tråden men har lige kigget på dit indlæg fra
> 17/2. Jeg gætter på, at de to første kodelinjer skal skrives som en -
eller
> skal det stå på de to linjer?

Nu kiggede jeg på det og lavede lidt tests.
Denne her virker i mit eksempel med Peter's formular:
( http://w-o-p-r.dk/test/peter.html )
.....
var regex = new RegExp('^[\\w-_\.+]*[\\w-_\.]\@([\\w]+\\.)+[\\w]+[\\w]$');
if (!regex.test(theForm.E_mail.value)){
alert("Invalid E-mail Address! Please re-enter.");
theForm.E_mail.focus();
return (false);
}
.....
Hvis du retter til dine egne navne, thisform og mail og lægger den ind i din
function validate_form(thisform) rutine, så burde det virke.

--
Med venlig hilsen/Best regards
Stig Johansen




Erik Ginnerskov (28-02-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 28-02-09 23:12

Stig Johansen wrote:

> Nu kiggede jeg på det og lavede lidt tests.

> var regex = new
> RegExp('^[\\w-_\.+]*[\\w-_\.]\@([\\w]+\\.)+[\\w]+[\\w]$'); if
> (!regex.test(theForm.E_mail.value)){ alert("Invalid E-mail
> Address! Please re-enter."); theForm.E_mail.focus();
> return (false);
> }

Tak, det fungerer perfekt.

Men jeg fatter ikke de hieroglyffer. Gider du forklare den første kodelinje?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Stig Johansen (01-03-2009)
Kommentar
Fra : Stig Johansen


Dato : 01-03-09 00:05

Erik Ginnerskov wrote:

> Men jeg fatter ikke de hieroglyffer.

That makes two of us ;)

> Gider du forklare den første
> kodelinje?

Helst ikke, men jeg tror jeg stjal det herfra:
<http://www.4guysfromrolla.com/webtech/052899-1.shtml>

Der står en god forklaring (synes jeg) et stykke nede ad siden.

--
Med venlig hilsen
Stig Johansen

Erik Ginnerskov (01-03-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 01-03-09 01:09

Stig Johansen wrote:

>> Gider du forklare den første
>> kodelinje?
>
> Helst ikke, men jeg tror jeg stjal det herfra:
> <http://www.4guysfromrolla.com/webtech/052899-1.shtml>
>
> Der står en god forklaring (synes jeg) et stykke nede ad siden.

Det ser ud som om det er en standardkode, som fanger alt det, der ikke er
whitelisted. Er det rigtigt forstået?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Stig Johansen (01-03-2009)
Kommentar
Fra : Stig Johansen


Dato : 01-03-09 02:05

Erik Ginnerskov wrote:

> Det ser ud som om det er en standardkode, som fanger alt det, der ikke er
> whitelisted. Er det rigtigt forstået?

Jeg bruger ikke rigtig regulære udtryk i de programmer jeg laver, så jeg
kender det ikke rigtigt.

Så vidt jeg kan se ud fra beskrivelsen så tjekker den det mest basale, at
der står 'lovlige' tegn før @ og 'lovligt' domæne efter @.

Mon ikke det vil fange de fleste fejltastninger.

Hvis man Googler efter "regexp email validate" (uden anførselstegn) kommer
der en masse forskellige udtryk frem man kan kigge på.

Men det (utestede) udtryk jeg fandt frem til Peter i den lange tråd, virkede
ikke her hos mig, så man kan frygte at der ligger en masse skrammel på
nettet.

4guysfromrolla.com synes jeg (at kunne huske), at jeg jævnligt er stødt på
gennem de sidste 10-15 år, så derfor faldt valget på den i mit svar til
dig.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (01-03-2009)
Kommentar
Fra : Rune Jensen


Dato : 01-03-09 00:46

Erik Ginnerskov skrev:
> Stig Johansen wrote:
>
>> Nu kiggede jeg på det og lavede lidt tests.
>
>> var regex = new
>> RegExp('^[\\w-_\.+]*[\\w-_\.]\@([\\w]+\\.)+[\\w]+[\\w]$'); if
>> (!regex.test(theForm.E_mail.value)){ alert("Invalid E-mail
>> Address! Please re-enter."); theForm.E_mail.focus();
>> return (false);
>> }
>
> Tak, det fungerer perfekt.
>
> Men jeg fatter ikke de hieroglyffer. Gider du forklare den første
> kodelinje?

Det er Regular Expressions, på dansk regulære udtryk også kaldet. En
meget avanceret udgave at den metode, du bruger når du søger på en fil
f.eks. filnv* eller *.exe eller index.htm? f.eks.

Rægulære udtryk er geniale til at lave hurtig validering af f.eks.
indhold af en besked, lave whitelisting af querystring, en valid email,
valid URL osv. Men at sidde og finde på dem er for nørder. Derfor har
man som regel bare de to-tre mest nødvendige liggende.

Det letteste for begyndere er at teste på ord og tegn og tal, det er der
specielle "tags" eller markører for, så der kan man nogenlunde følge med.

Iøvrigt - der er lavet en hel afhandling - bogstaveligt talt - om det at
validere emailadresser. Mener at kunne huske en nær 100% validering af
mailadresse "koster" flere skærmlinjer bare med hiroglyffer, fordi der
er så mange muligheder for fejl. Og du kan faktisk lave
remarks/bemærkninger i dem også og conditions som er afhængige af
udfaldet andre steder, så det bliver små programmer.



MVH
Rune Jensen

Erik Ginnerskov (01-03-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 01-03-09 01:16

Rune Jensen wrote:

> Det er Regular Expressions, på dansk regulære udtryk også kaldet.

Så meget vidste jeg. Det var alle de 'tegn og underlige gerninger' efter
RegExp, jeg ikke fattede betydningen af. Men Stigs link kom med en fin
forklaring.

> Iøvrigt - der er lavet en hel afhandling - bogstaveligt talt - om det
> at validere emailadresser. Mener at kunne huske en nær 100%
> validering af mailadresse "koster" flere skærmlinjer bare med
> hiroglyffer, fordi der er så mange muligheder for fejl. Og du kan
> faktisk lave remarks/bemærkninger i dem også og conditions som er
> afhængige af udfaldet andre steder, så det bliver små programmer.

Mon ikke den smule kode fra Stig vil være dækkende. Hvis folk vil i kontakt
med sidens ejer, må de vel også selv påtage sig det ansvar at skrive en
korrekt adresse. I forvejen er formularen forsynet med en spambot-fælde.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Stig Johansen (01-03-2009)
Kommentar
Fra : Stig Johansen


Dato : 01-03-09 01:53

Rune Jensen wrote:

> Iøvrigt - der er lavet en hel afhandling - bogstaveligt talt - om det at
> validere emailadresser.

Det kræver nu ikke en hel afhandling.
Gør følgende serverside:
1) Tjek at der er et @ i adressen.
2) Lav en MX lookup på det der står efter @
3) Tjek at det der står foran @ er lovlige tegn.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (01-03-2009)
Kommentar
Fra : Rune Jensen


Dato : 01-03-09 02:04

Stig Johansen skrev:
> Rune Jensen wrote:
>
>> Iøvrigt - der er lavet en hel afhandling - bogstaveligt talt - om det at
>> validere emailadresser.
>
> Det kræver nu ikke en hel afhandling.
> Gør følgende serverside:
> 1) Tjek at der er et @ i adressen.
> 2) Lav en MX lookup på det der står efter @
> 3) Tjek at det der står foran @ er lovlige tegn.

Jeg har ikke leget med MX-lookup endnu, er egentlig heller ikke klar
over, hvad det er, men det må jeg så sætte på to-do-listen.

Man skal ikke lade noget være uprøvet.


MVH
Rune Jensen

Stig Johansen (01-03-2009)
Kommentar
Fra : Stig Johansen


Dato : 01-03-09 02:11

Rune Jensen wrote:

> Jeg har ikke leget med MX-lookup endnu, er egentlig heller ikke klar
> over, hvad det er, men det må jeg så sætte på to-do-listen.
>
> Man skal ikke lade noget være uprøvet.

Det er ikke sikkert man kan det på almindelige webhoteller.
Men en MX lookup er en forespørgsel på MX records i DNS.
MX er vistnok forkortelse for Mail eXchange.

Men ved at lave en MX lookup sikre man sig, ikke kun at domænet er aktivt,
men at der også faktisk er en Mailserver der lytter.

Dermed behøver man ikke at tjekke for mærkelige kombinationer af tegn, enten
er den der, eller også er den der ikke.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (01-03-2009)
Kommentar
Fra : Rune Jensen


Dato : 01-03-09 02:59

Stig Johansen skrev:

> Men ved at lave en MX lookup sikre man sig, ikke kun at domænet er aktivt,
> men at der også faktisk er en Mailserver der lytter.
>
> Dermed behøver man ikke at tjekke for mærkelige kombinationer af tegn, enten
> er den der, eller også er den der ikke.

Ligesom at sende en header?

Når folk sender en head til min side, er det vel udelukkende for at se,
om domænet eksisterer?


MVH
Rune Jensen

Stig Johansen (01-03-2009)
Kommentar
Fra : Stig Johansen


Dato : 01-03-09 07:37

Rune Jensen wrote:
>
> Ligesom at sende en header?

Ikke helt, der bliver ikke sendt noget til serveren.
Det svarer til følgende:
sj@lwork1> dig -tMX runejensen.dk
der bla. giver:
;; ANSWER SECTION:
runejensen.dk. 6007 IN MX 10 mail4.unoeuro.com.

Her kan man se:
- At runejensen.dk har en MX record
- Hvis man skal sende mail via SMTP, forbinder man til mail4.unoeuro.com

Du skal nok nærmere sammenligne med en slags whois opslag.

> Når folk sender en head til min side, er det vel udelukkende for at se,
> om domænet eksisterer?

Ikke kun det.
Man bruger også HEAD for at tjekke om en side er opdateret.
Google bruger det (vistnok).
På den måde kan man sammenligne datoer for sin egen cache, eller kopi, uden
at belaste serveren.

--
Med venlig hilsen
Stig Johansen

Peter (10-03-2009)
Kommentar
Fra : Peter


Dato : 10-03-09 10:38

Hej Stig!

Jeg har startet en "ny" tråd: "Ny Tjek dato" (pr. 18.02.09)

> E_mail.value)))NB Du må meget gerne oprette en ny tråd, da denne her er
> ved
> at forsvinde i min historik.
> --
> Med venlig hilsen/Best regards
> Stig Johansen



> Den startede d. 10.1 med overskriften "Tjek dato"
>
> Langt nede i tråden (17.2) er der lidt diskussion frem og tilbage med
> Peter,
> også email validering.
>
> Hans valideringsrutine lignede din - SVJH, men han har ikke vendt tilbage
> om
> det virkede.
>
> --
> Med venlig hilsen
> Stig Johansen



Erik Ginnerskov (02-03-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-03-09 14:17

Stig Johansen wrote:

> Lav evt. en konstruktion a lá:

> var contact_firmname = getElementById('contact_firmname');
> if (contact_firmname < '!') {
> alert ('Feltet virksomhed skal udfyldes'(;
> contact_firmname.focus();
> return false;
> }

Det har jeg nu prøvet, det fanger ikke en hujende fis. ;-(

http://hjemmesideskolen.dk/usenet/js/formular.asp

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Stig Johansen (02-03-2009)
Kommentar
Fra : Stig Johansen


Dato : 02-03-09 15:14

"Erik Ginnerskov" <erik.ginnerskov@live.dk> wrote in message
news:49abdc59$0$90265$14726298@news.sunsite.dk...
> Stig Johansen wrote:
>
> > Lav evt. en konstruktion a lá:
>
> > var contact_firmname = getElementById('contact_firmname');
> > if (contact_firmname < '!') {
> > alert ('Feltet virksomhed skal udfyldes'(;
> > contact_firmname.focus();
> > return false;
> > }
>
> Det har jeg nu prøvet, det fanger ikke en hujende fis. ;-(
>
> http://hjemmesideskolen.dk/usenet/js/formular.asp
Jeg har også sådan et keyboard, hvor paranteserne ikke vil som jeg vil.
Det skal være document.getElementById og ikke kun getElementById.

Denne her (aftestede) funktions stump virker her:
function validate_form(thisform)
{
var f1 = document.getElementById('f1');
if (f1.value < '!') {
alert ('Feltet Emne skal udfyldes');
f1.focus();
return false;
}

var f2 = document.getElementById('f2');
if (f2.value < '!') {
alert ('Feltet Navn skal udfyldes');
f2.focus();
return false;
}
}

Bemærk at variablene f1 og f2 ikke er det samme som id'et.

--
Med venlig hilsen/Best regards
Stig Johansen




Erik Ginnerskov (02-03-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-03-09 19:46

Stig Johansen wrote:
> "Erik Ginnerskov" <erik.ginnerskov@live.dk> wrote in message

> Denne her (aftestede) funktions stump virker her:
> function validate_form(thisform)
> {
> var f1 = document.getElementById('f1');
> if (f1.value < '!') {
> alert ('Feltet Emne skal udfyldes');
> f1.focus();
> return false;
> }

Jeg prøvede dette uden held (ændrede variabelnavne for ikke at konflikte med
felt-ID'er):

function validate_form(thisform)
{
var v1 = document.getElementById('f1');
if (f1.value < '!') {
alert ('Feltet Emne skal udfyldes');
f1.focus();
return false;
}

var v2 = document.getElementById('f2');
if (f2.value < '!') {
alert ('Feltet Navn skal udfyldes');
f2.focus();
return false;
}

var v3 = document.getElementById('f3');
if (f3.value < '!') {
alert ('Feltet Email-adresse skal udfyldes');
f3.focus();
return false;
}

var v4 = document.getElementById('f4');
if (f4.value < '!') {
alert ('Feltet Besked skal udfyldes');
f4.focus();
return false;
}
}

En blank formular kan submittes.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Stig Johansen (02-03-2009)
Kommentar
Fra : Stig Johansen


Dato : 02-03-09 22:59

Erik Ginnerskov wrote:

> Jeg prøvede dette uden held (ændrede variabelnavne for ikke at konflikte
> med felt-ID'er):
>
> function validate_form(thisform)
> {
> var v1 = document.getElementById('f1');
> if (f1.value < '!') {

Her skal du bruge v1.value.

> alert ('Feltet Emne skal udfyldes');
> f1.focus();

Her skal du bruge v1.focus();

Det samme med v2,v3 og v4.

> En blank formular kan submittes.

Ja, for javascriptet fejler ved submit, og bliver derfor ikke udført.
I min Firefox dukker der et lille rødt udråbstegn op, og når man klikker på
det, åbnes error console.

Her vises fejl og linienummer.

I det her tilfælde 'f1 is not defined...'

Jeg ved ikke om det er default eller via en eller enden plug-in, men god er
den.

--
Med venlig hilsen
Stig Johansen

Erik Ginnerskov (03-03-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 03-03-09 00:32

Stig Johansen wrote:

>> var v1 = document.getElementById('f1');
>> if (f1.value < '!') {
>
> Her skal du bruge v1.value.
>
>> alert ('Feltet Emne skal udfyldes');
>> f1.focus();

Prøvede jeg, hjalp ikke. Der submittes selv om et felt er tomt.

> Ja, for javascriptet fejler ved submit, og bliver derfor ikke udført.
> I min Firefox dukker der et lille rødt udråbstegn op, og når man
> klikker på det, åbnes error console.

Jeg har javascript debugger installeret. Den finder ikke noget.

Prøvede så at sætte alt tilbage til f1, f2, ... - det hjalp. Nu fanges et
tomt felt. Fik den også til at validere indholdet i email-feltet.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


Stig Johansen (03-03-2009)
Kommentar
Fra : Stig Johansen


Dato : 03-03-09 00:58

Erik Ginnerskov wrote:

> Prøvede så at sætte alt tilbage til f1, f2, ... - det hjalp. Nu fanges et
> tomt felt. Fik den også til at validere indholdet i email-feltet.

Jeg testede også lige her.
Det virker fint, også i min Konqueror.

Hvis du har lavet backenden, og der dukker en besked op med intetsigende
ting i, er det bare mig.

--
Med venlig hilsen
Stig Johansen

Stig Johansen (03-03-2009)
Kommentar
Fra : Stig Johansen


Dato : 03-03-09 01:02

Erik Ginnerskov wrote:

> Stig Johansen wrote:
>
>>> var v1 = document.getElementById('f1');
>>> if (f1.value < '!') {
>>
>> Her skal du bruge v1.value.
>>
>>> alert ('Feltet Emne skal udfyldes');
>>> f1.focus();
>
> Prøvede jeg, hjalp ikke. Der submittes selv om et felt er tomt.

Nu har du rettet det, men for lige at rekapitulere, så kan du kalde
variablerne hvadsomhelst, blot disse dele hedder det samme:
var f1 =..
f1.value
f1.focus();

og id'et fra formen bruges i getElementById('f1')

--
Med venlig hilsen
Stig Johansen

Erik Ginnerskov (03-03-2009)
Kommentar
Fra : Erik Ginnerskov


Dato : 03-03-09 01:16

Stig Johansen wrote:

> Nu har du rettet det, men for lige at rekapitulere, så kan du kalde
> variablerne hvadsomhelst, blot disse dele hedder det samme:
> var f1 =..
> f1.value
> f1.focus();
>
> og id'et fra formen bruges i getElementById('f1')

Nådet'så'n, det hænger sammen. Jeg er ikke nogen ørn til js, men jeg prøver
at lære lidt.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://vestfynswebdesign.dk - http://html-faq.dk


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

Månedens bedste
Årets bedste
Sidste års bedste