Avatar billede rene_petersen Nybegynder
14. maj 2003 - 21:06 Der er 2 kommentarer og
1 løsning

Foretage beregninger v.h.a. JavaScript

Jeg har tidligere efterspurgt hjælp til følgende opgave, og er kommet et godt stykke af vejen:

"I forbindelse med en site om salg af erhvervsgrunde skal jeg bruge et beregningsskema der kan udregne de samlede omkostninger ved et køb.

Regnestykket ser sådan ud:
B1 Købesum (indtastes af bruger)
B2 Tilslutningsbidrag (indtastes af bruger)
B3 Skøde (BEREGNES på basis af B1 (0,006 x B1 + 1.400 kr)
B4 Pantebrev (BEREGNES på basis af B1 (0,015 x (0,8 x B1)+ 1.400 kr)
B5 Eltilslutning (Indtastes af bruger)
B6 Vandtilslutning (Indtastes af bruger)
B7 Varmetilslutning (indtastes af bruger)

I alt (BEREGNES B1+B2+B3+B4+B5+B6+B7)

Olebole har anbefalet følgende script, der faktisk virker fint, men jeg har nu et ønske om at B1 ikke længere skal indtastes af bruger. Jeg Jeg vil gerne have skemaet til at kunne beregne købesummen (B1).
Jeg forestiller mig at beregningne skal kunne foretages ved at brugeren indtaster det ønskede antal m2 (L1) og prisen på m2 (L2). Er der nogen der kan fortælle mig hvad jeg skal ændre for at det kan lade sig gøre ?


<html>
<head>
<script type="text/JavaScript">
function pF(str) {
    return parseFloat(str);
}
var calced = false;
function calc(f) {
    if (f.B1.value=="" || f.B2.value=="" || f.B5.value=="" || f.B6.value=="" || f.B7.value=="") {
        alert("Udfyld alle fornødne felter");
        return false;
    }
    f.B3.value = (0.006 * f.B1.value) + 1400;
    f.B4.value = (0.015 * (0.8 * f.B1.value)) + 1400;
    f.B8.value = pF(f.B1.value) + pF(f.B2.value) + pF(f.B3.value) + pF(f.B4.value) + pF(f.B5.value) + pF(f.B6.value) + pF(f.B7.value);
    calced = true;
}
function checkCalc() {
    if (!calced) {
        alert("Tryk først beregn");
        return false;
    }
}
</script>
</head>
<body>

<form action="din_fil.asp" method="post" onsubmit="return checkCalc()">
Købesum: <input type="text" name="B1"><br>
Tilslutningsbidrag: <input type="text" name="B2"><br>
Skøde: <input type="text" name="B3"><br>
Pantebrev: <input type="text" name="B4"><br>
Eltilslutning: <input type="text" name="B5"><br>
Vandtilslutning: <input type="text" name="B6"><br>
Varmetilslutning: <input type="text" name="B7"><br>
Ialt: <input type="text" name="B8"><br>
<button onclick="calc(this.form)">Beregn</button>
<button type="submit">Send</button>
</form>

</body>
</html>

Venlig hilsen
René
Avatar billede jespernaur Nybegynder
14. maj 2003 - 23:00 #1
Her er et bud:

<html>
<head>
<script type="text/JavaScript">
function pF(str) {
    return parseFloat(str);
}
var calced = false;
function calc(f) {
    if (f.L1.value=="" || f.L2.value=="" || f.B2.value=="" || f.B5.value=="" || f.B6.value=="" || f.B7.value=="") {
        alert("Udfyld alle fornødne felter");
        return false;
    }
    f.B1.value = f.L1.value * f.L2.value;
    f.B3.value = (0.006 * f.B1.value) + 1400;
    f.B4.value = (0.015 * (0.8 * f.B1.value)) + 1400;
    f.B8.value = pF(f.B1.value) + pF(f.B2.value) + pF(f.B3.value) + pF(f.B4.value) + pF(f.B5.value) + pF(f.B6.value) + pF(f.B7.value);
    calced = true;
}
function checkCalc() {
    if (!calced) {
        alert("Tryk først beregn");
        return false;
    }
}
</script>
</head>
<body>

<form action="din_fil.asp" method="post" onsubmit="return checkCalc()">
Antal kvadratmeter: <input type="text" name="L1"><br>
Kvadratmeterpris: <input type="text" name="L2"><br>
Købesum: <input type="text" name="B1"><br>
Tilslutningsbidrag: <input type="text" name="B2"><br>
Skøde: <input type="text" name="B3"><br>
Pantebrev: <input type="text" name="B4"><br>
Eltilslutning: <input type="text" name="B5"><br>
Vandtilslutning: <input type="text" name="B6"><br>
Varmetilslutning: <input type="text" name="B7"><br>
Ialt: <input type="text" name="B8"><br>
<button onclick="calc(this.form)">Beregn</button>
<button type="submit">Send</button>
</form>

</body>
</html>
Avatar billede rene_petersen Nybegynder
15. maj 2003 - 09:11 #2
Mange tak for det.
Er det muligt at få skemaet til at afrunde til 2 decimaler i B8 ?

Venlig hilsen
René
Avatar billede jespernaur Nybegynder
16. maj 2003 - 13:09 #3
Det kan man sagtens, i udgaven herunder har jeg tilføjet B9 og B10 som viser resultatet af at hhv. runde ned til 2 decimaler eller afrunde til nærmeste 2 decimaler, hvilket vil sige runde ned hvis tredie decimal er 4 og derunder og runde op hvis tredie decimal er 5 og derover. Nu kan du se hvordan det er lavet, og beslutte hvad du vil bibeholde.

<html>
<head>
<script type="text/JavaScript">
function pF(str) {
    return parseFloat(str);
}
var calced = false;
function calc(f) {
    if (f.L1.value=="" || f.L2.value=="" || f.B2.value=="" || f.B5.value=="" || f.B6.value=="" || f.B7.value=="") {
        alert("Udfyld alle fornødne felter");
        return false;
    }
    f.B1.value = f.L1.value * f.L2.value;
    f.B3.value = (0.006 * f.B1.value) + 1400;
    f.B4.value = (0.015 * (0.8 * f.B1.value)) + 1400;
    var ialt = pF(f.B1.value) + pF(f.B2.value) + pF(f.B3.value) + pF(f.B4.value) +
              pF(f.B5.value) + pF(f.B6.value) + pF(f.B7.value);
    f.B8.value = ialt;
    f.B9.value = Math.floor(ialt * 100.0) / 100.0;
    f.B10.value = Math.round(ialt * 100.0) / 100.0;
    calced = true;
}
function checkCalc() {
    if (!calced) {
        alert("Tryk først beregn");
        return false;
    }
}
</script>
</head>
<body>

<form action="din_fil.asp" method="post" onsubmit="return checkCalc()">
Antal kvadratmeter: <input type="text" name="L1"><br>
Kvadratmeterpris: <input type="text" name="L2"><br>
Købesum: <input type="text" name="B1"><br>
Tilslutningsbidrag: <input type="text" name="B2"><br>
Skøde: <input type="text" name="B3"><br>
Pantebrev: <input type="text" name="B4"><br>
Eltilslutning: <input type="text" name="B5"><br>
Vandtilslutning: <input type="text" name="B6"><br>
Varmetilslutning: <input type="text" name="B7"><br>
Ialt: <input type="text" name="B8"><br>
Ialt rundet ned til 2 decimaler: <input type="text" name="B9"><br>
Ialt afrundet til nærmeste 2 decimaler: <input type="text" name="B10"><br>
<button onclick="calc(this.form)">Beregn</button>
<button type="submit">Send</button>
</form>

</body>
</html>

Mvh
Jesper Naur
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