04. juni 2002 - 11:30 Der er 7 kommentarer og
1 løsning

function til at regne på felter

Jeg har:

function  doMathOnBilegg(valueformFeild,valuePrice,ReturnvalueFeild) {// valueformFeild,valuePrice, ReturnvalueFeild
//        doMathOnBilegg(oShirt2_3y,'50',oShirt2_3yPrice);
def = eval(valueformFeild);
hest = eval(valuePrice);
//        var one = eval(document.FormName.oShirt2_3y.value)
var one = hest
//        var two = eval(document.FormName.oShirt2_3y.value)
var two = def
var prod = one  *  two
       
       
document.FormName. + ReturnvalueFeild+ .value = custRound(prod,2);
}
function custRound(x,places) {
return (Math.round(x*Math.pow(10,places)))/Math.pow(10,places)
}


Problemet er denne linie:
document.FormName. + ReturnvalueFeild+ .value = custRound(prod,2);

Jeg får den ikke til at skrive tilbage til det feild som jeg har "fodret" den med i ReturnvalueFeild!
ReturnvalueFeild kunne være "SalesPrice" som er et formfelt, hvor jeg skal have skrevet resultatet ud i.

/def
Avatar billede -mundi- Nybegynder
04. juni 2002 - 11:32 #1
prøv

document.FormName.elements[ReturnvalueFeild].value = custRound(prod,2);
Avatar billede -mundi- Nybegynder
04. juni 2002 - 11:33 #2
btw så staves har du stavefejl med feild=field men hvis du har samme navn over det hele er det slf ligemeget
Avatar billede -mundi- Nybegynder
04. juni 2002 - 11:34 #3
he he og jeg har vist en grim skrivefejl,men du forstår forhåbenligt hvad jeg mener :-)
04. juni 2002 - 11:40 #4
voilá :-))
04. juni 2002 - 12:01 #5
BTW:

Hvis disse to felter indeholder et tal, f.eks: 5
document.FormName.1.value
document.FormName.2.value

Så når jeg gør sådan
document.FormName.1.value  + document.FormName.2.value
så får jeg 55
hvordan får jeg 10 som resultat isteden for?
Avatar billede -mundi- Nybegynder
04. juni 2002 - 12:09 #6
Det er fordi du har 2 stykker tekst som du vil "plusse", scriptet ved ikke at du vil lægge dem sammen som tal og da + kan begge dele vælger den at arbejde med værdierne som tekststykker...

du kan komme uden om det ved at gøre sådan her:
(document.FormName.1.value-0) + (document.FormName.2.value-0)
04. juni 2002 - 12:10 #7
Number(document.FormName.1.value) right?
Avatar billede jakoba Nybegynder
04. juni 2002 - 12:21 #8
anførselstegn, anførselstegn, anførselstegn, anførselstegn, anførselstegn, anførselstegn,

//        doMathOnBilegg(oShirt2_3y,'50',oShirt2_3yPrice);

her benytter du anførselstenenen præcis omvendt af som de burde bruges.

50 er en talværdi. der skal ikke anføselsteng om.

oShirt2_3y er et navn. du ønsker at fortælle at navnet staves med de bogstaver i den rækkefølge. Der skal anførseltegn om.

jeg tipper det er det samme med oShirt2_3yPrice

så lav kaldet som:
//        doMathOnBilegg('oShirt2_3y',50,'oShirt2_3yPrice');

men det er ikke nok til at fikse den der adresselinie. brug:
    document.FormName[ReturnvalueFeild].value = custRound(prod,2);

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester