<-= 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/