Avatar billede reino Nybegynder
16. april 2005 - 06:56 Der er 4 kommentarer og
1 løsning

Onload vedr. udregning

Hejsa

Har følgende kode som foretager en udregning. Nu er det sådan at jeg gerne vil have den til at foretage udregning når man kommer ind på siden, ved predefinerede valus i antal og pris, men når jeg forsøger at benytte onload: <body onload="opdaterSum(this.form),opdaterSum1(this.form)"> får jeg en fejl på at vare1 er null eller ikke objekt, nogen der kan hjælpe ?

Koden:

<html>
<head>
    <title>Untitled</title>

    <script type="text/javascript">
    function opdaterSum( frmObj ) {
          var nySum = 0;
           
          nySum += frmObj.vare1.value * frmObj.vare2.value;
          frmObj.pris.value = nySum;
       
    }
    </script>
        <script type="text/javascript">
    function opdaterSum1( frmObj1 ) {
          var nySum1 = 0;
           
          nySum1 += frmObj1.vare1.value * frmObj1.vare2.value * 1.25;
          frmObj1.pris1.value = nySum1;
       
    }
    </script>
</head>

<body onload="opdaterSum(this.form),opdaterSum1(this.form)">

<form>
Antal: <input type="text" name="vare1" value="7" onkeyup="opdaterSum(this.form),opdaterSum1(this.form)">
Pris: <input type="text" name="vare2" value="7" onkeyup="opdaterSum(this.form),opdaterSum1(this.form)"><br>

<br>Total ex. moms:<input type="text" name="pris" value="0" readonly>
<br>Total inkl. moms:<input type="text" name="pris1" value="0" readonly>
</form>


</body>
</html>
Avatar billede Slettet bruger
16. april 2005 - 07:04 #1
this.form i onload er undefined da body (this) ikke er i formen. Du skal give din form et name for <form name="foo"> og så refererer den direkte i onload handlingen så som document.form['foo'] således:

opdaterSum(document.Form['foo']);
opdaterSum1(document.Form['foo']);
Avatar billede reino Nybegynder
16. april 2005 - 07:14 #2
Hejsa, tak for det. Nu har jeg prøvet denne kode:

<html>
<head>
    <title>Untitled</title>

    <script type="text/javascript">
    function opdaterSum( frmObj ) {
          var nySum = 0;
           
          nySum += frmObj.vare1.value * frmObj.vare2.value;
          frmObj.pris.value = nySum;
       
    }
    </script>
        <script type="text/javascript">
    function opdaterSum1( frmObj1 ) {
          var nySum1 = 0;
           
          nySum1 += frmObj1.vare1.value * frmObj1.vare2.value * 1.25;
          frmObj1.pris1.value = nySum1;
       
    }
    </script>
</head>

<body onload="opdaterSum(document.Form['foo']), opdaterSum1(document.Form['foo'])">

<form name="foo">
Antal: <input type="text" name="vare1" value="7" onkeyup="opdaterSum(this.form),opdaterSum1(this.form)">
Pris: <input type="text" name="vare2" value="7" onkeyup="opdaterSum(this.form),opdaterSum1(this.form)"><br>

<br>Total ex. moms:<input type="text" name="pris" value="0" readonly>
<br>Total inkl. moms:<input type="text" name="pris1" value="0" readonly>
</form>


</body>
</html>

Men fejler stadigvæk, siger nu at document.form.foo er null

Er ikke den største haj til java :)
Avatar billede busschou Praktikant
16. april 2005 - 08:02 #3
syntaks fejl:
----
<html>
<head>
    <title>Untitled</title>

    <script type="text/javascript">
    function opdaterSum( frmObj ) {
          var nySum = 0;
         
          nySum += frmObj.vare1.value * frmObj.vare2.value;
          frmObj.pris.value = nySum;
     
    }
    </script>
        <script type="text/javascript">
    function opdaterSum1( frmObj1 ) {
          var nySum1 = 0;
         
          nySum1 += frmObj1.vare1.value * frmObj1.vare2.value * 1.25;
          frmObj1.pris1.value = nySum1;
     
    }
    </script>
</head>

<body onload="opdaterSum(document.forms.foo), opdaterSum1(document.forms.foo)">

<form name="foo">
Antal: <input type="text" name="vare1" value="7" onkeyup="opdaterSum(this.form),opdaterSum1(this.form)">
Pris: <input type="text" name="vare2" value="7" onkeyup="opdaterSum(this.form),opdaterSum1(this.form)"><br>

<br>Total ex. moms:<input type="text" name="pris" value="0" readonly>
<br>Total inkl. moms:<input type="text" name="pris1" value="0" readonly>
</form>


</body>
</html>
Avatar billede reino Nybegynder
16. april 2005 - 09:04 #4
Takker, det virkede :)
Avatar billede reino Nybegynder
22. maj 2005 - 06:23 #5
Hej igen

har lige et spørgsmål. Kan man ved:
<br>Total ex. moms:<input type="text" name="pris" value="0" readonly>

få det vist med et kommasepareret ciffer, feks når pris er 900 skal den skrive 900,00 som standard.

Jeg opretter blot et  nyt spørgsmål såfremt det er, håber du kan hjælpe
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