/ 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
Problem med datavalidering
Fra : Ukendt


Dato : 20-09-04 20:40

Har en form (Form1) med 3 inputfelter (beloeb, rente, terminer) hvor
brugeren kan skrive. Skal nu tjekke om det indtastede er tal, hvilket jeg
har forsøgt at gøre på følgende måde:

/* datavalidering */
if(isNaN("Form1.beloeb.value", "Form1.rente.value",
"Form1.terminer.value"))
alert ("En eller flere af de indtastede værdier var ikke tal!");
else

/* beregning */
res1 = (Form1.rente.value * 1)/100;
res2 = res1 + 1;
res3 = Math.pow(res2,(Form1.terminer.value * 1));
res4 = (Form1.beloeb.value * 1) * res3;

/* udskriv resultat og afrund til 2 decimaler */
Form1.NyeSum.value = Math.round(res4 * 100)/100;

Uanset input kommer alert boksen frem. Er metoden den rigtige eller er der
en bedre måde?



 
 
Martin Hintzmann And~ (22-09-2004)
Kommentar
Fra : Martin Hintzmann And~


Dato : 22-09-04 08:48

<-= KG =-> wrote:

> Har en form (Form1) med 3 inputfelter (beloeb, rente, terminer) hvor
> brugeren kan skrive. Skal nu tjekke om det indtastede er tal, hvilket jeg
> har forsøgt at gøre på følgende måde:
>

[snip kode]

>
> Uanset input kommer alert boksen frem. Er metoden den rigtige eller er der
> en bedre måde?
>


Først og fremmest bør du _altid_ tilgå form felter via collectionerne
"forms" og "elements". Eksempel:
document.forms["Form1"].elements["beloeb"].value

Dernæst kan isNaN kun tage et parameter.
http://www.devguru.com/Technologies/ecmascript/quickref/isnan.html

Prøv med følgende:

/* Finder form felter */
var oForm = document.forms["Form1"];
var oBeloeb = oForm.elements["beloeb"];
var oRente = oForm.elements["rente"];
var oTerminer = oForm.elements["terminer"];
var oNyeSum = oForm.elements["NyeSum"];

/* datavalidering */
if ( isNaN(oBeloeb.value) or isNaN(oRente.value) or isNaN(oTerminer
..value) )
{
alert ("En eller flere af de indtastede værdier var ikke tal!");
} else {

/* beregning */
var res1, res2, res3, res4;
res1 = (oRente.value * 1)/100;
res2 = res1 + 1;
res3 = Math.pow(res2,(oTerminer.value * 1));
res4 = (oBeloeb.value * 1) * res3;

/* udskriv resultat og afrund til 2 decimaler */
oNyeSum.value = Math.round(res4 * 100)/100;
}

--
Martin Hintzmann Andersen
http://www.hintzmann.dk/

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

Månedens bedste
Årets bedste
Sidste års bedste