Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Form validator

0 views
Skip to first unread message

Lars Grove Mortensen

unread,
Jul 22, 2008, 7:53:29 AM7/22/08
to
Hej alle på NG

Jeg bruger følgende form validator:

var quant = theForm.KontraktNr.value
if (isNaN(quant) == true || quant < 1 || quant > 9999999)
{
alert("Indtast venligst kontraktnummer.");
theForm.KontraktNr.focus();
return false;
}


Men jeg vil gerne have én, der bare tjekker om det er numerisk -
og om der står en værdi... altså ikke noget med at værdien skal
være mellem et defineret max eller minimum - bare at der står en
tal værdi.

Håber der er nogen, der kan hjælpe?


På forhånd tak

MVH
Lars

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Lars Madsen

unread,
Jul 22, 2008, 8:05:33 AM7/22/08
to
Lars Grove Mortensen wrote:
> Hej alle på NG
>
> Jeg bruger følgende form validator:
>
> var quant = theForm.KontraktNr.value
> if (isNaN(quant) == true || quant < 1 || quant > 9999999)
> {
> alert("Indtast venligst kontraktnummer.");
> theForm.KontraktNr.focus();
> return false;
> }
>
>
> Men jeg vil gerne have én, der bare tjekker om det er numerisk -
> og om der står en værdi... altså ikke noget med at værdien skal
> være mellem et defineret max eller minimum - bare at der står en
> tal værdi.
>
> Håber der er nogen, der kan hjælpe?
>
>

var pattern = /^\d+$/;
pattern.test(value)

burde kunne gøre det

> På forhånd tak
>
> MVH
> Lars
>


--

/daleif (remove RTFSIGNATURE from email address)

LaTeX FAQ: http://www.tex.ac.uk/faq
LaTeX book: http://www.imf.au.dk/system/latex/bog/ (in Danish)
Remember to post minimal examples, see URL below
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=minxampl
http://www.minimalbeispiel.de/mini-en.html

Lasse Reichstein Nielsen

unread,
Jul 23, 2008, 7:17:25 AM7/23/08
to
Lars Grove Mortensen <sp...@grove-mortensen.dk> writes:

> Jeg bruger følgende form validator:
>
> var quant = theForm.KontraktNr.value

Hvor kommer "theForm" fra? Er det formen der er givet med, eller
er det navnet på formen der bruges som variabel?

Efterfølgende bruger du "quant" som et tal, selvom den værdi du
aflæser her er en streng. Heldigvis medfører alle de tests du
bruger at operanderne laves om til tal, men det er sikrest at
gøre det på forhånd, så man ikke kommer til at lave en operation
der virker forskelligt på strenge og på tal.

Jeg anbefaler altid at bruge elements-collectionen:
var quant = Number(theForm.elements['KontraktNr'].value);
eller, hvis "theForm" er navnet på formen:
var quant = Number(document.forms['theForm'].elements['KontraktNr'].value)

> if (isNaN(quant) == true || quant < 1 || quant > 9999999)

Her tjekker du om quant ikke kan laves om til et tal, eller om det kan
laves om til et tal der er mindre end 1, eller om det kan laves om til
et tal der er større end 9999999.

Det er denne linje der skal skrive som hvis du vil tjekke for noget andet.

Og, btw, så er det spild at skrive "isNaN(quant) == true". Det giver altid
det samme som bare "isNaN(quant)".

> {
> alert("Indtast venligst kontraktnummer.");
> theForm.KontraktNr.focus();
> return false;
> }
>
>
> Men jeg vil gerne have én, der bare tjekker om det er numerisk -

Hvad mener du med "numerisk"? Kun cifre? Eller er "1e+6" også
acceptabel (som den er i ovenstående)?

Hvis du bare vil acceptere det samme som tidligere, men uden grænserne
på tallet, så ret if-sætningen til
if (isNaN(quant)) { //...

Altså bare fjern testene på værdien.

Jeg vover det gæt at du ikke kan hverken læse eller skrive Javascript.
Det er farligt at putte ting ind på sin side, som man ikke forstår. Det
gør det meget svært at rette eventuelle fejl.

/L
--
Lasse Reichstein Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

0 new messages