Lars Grove Mortensen <spam@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.'