Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


summera fält med javascript

Postades av 2006-10-11 15:41:07 - Krister Bundy, i forum javascript/dhtml, Tråden har 8 Kommentarer och lästs av 1967 personer

Hej
Jag har ett formulär med 15 produkter som behöver summeras.
Finns det något smart javascript som gör det. Jag har prvat ett men det funkade inte men någon här har kanske något tips.


Svara

Sv: summera fält med javascript

Postades av 2006-10-11 17:02:57 - Peter Larsson

Hej
Visar ett exempel som du sedan kan modifiera för att passa ditt behov.

<b>Grundidé:</b>

<html>
 <head>
  <script language="javascript">
   function calcSum() {
    var sum = 0;
    for(var i=0; i<4; i++)
     sum += parseFloat(document.getElementById("t"+i).value);
    return sum;
   }
  </script>
 </head>

 <body>
  <input type="text" id="t0" name="t0"><br>
  <input type="text" id="t1" name="t1"><br>
  <input type="text" id="t2" name="t2"><br>
  <input type="text" id="t3" name="t3"><br>
  <input type="submit" value="Calculate sum" onclick="alert(calcSum());">
 </body>
</html>


/ Peter


Svara

Sv:summera fält med javascript

Postades av 2006-10-11 17:48:30 - Krister Bundy

Tack för hjälpen men jag har ett formulärfält där summan ska visa utan att man ska behöva klica och få upp summan separat.

Har du ett sådant script också så vore jag tacksam


Svara

Sv: summera fält med javascript

Postades av 2006-10-11 18:05:45 - Stefan Brännström

...onchange på input-taggen...


Svara

Sv: summera fält med javascript

Postades av 2006-10-11 20:17:24 - Peter Larsson

Som Stefan också nämner, lägg beräkningen i "onchange".

<b>Ändra</b>

<input type="text" id="t0" name="t0">


<b>till</b>
<input type="text" id="t0" name="t0" onchange="calcSum()">


och sedan får du givetvis ändra "calcSum()" till att skriva ut resultatet där du vill ha det.


Svara

Sv:summera fält med javascript

Postades av 2006-10-12 16:35:52 - Krister Bundy

Säkert helt riktigt men jag fattar trögt och skrev
<body>
<input type="text" id="t0" name="t0" onchange="calcSum()">
<br>
<input type="text" id="t1" name="t0"onchange="calcSum()">
<br>
<input type="text" id="t2" name="t0" onchange="calcSum()">
<br>
<input type="text" id="t3" name="t0" onchange="calcSum()">

<input type="text" id="calculate sum" name="Calculate sum" calcSum()">
<br>

Och som su förstår så funkade det inte.
Hur ska där stå för att ska få summan i ett summeringsfält oavsätt hur många poster som summeras.
Jag kanske bara beställer 3 varor av 15 ändå ska ju slutsumman visas.
Har du något bra svar så skriv gärna ASAP


Svara

Sv: summera fält med javascript

Postades av 2006-10-12 17:20:06 - Peter Larsson

Hej

Alla fält måste ha ett gemensamt namn + ett index att iterera över (lagras i attributet "id").
I mitt fall har jag döp detta namn (prefix) till "t" vilket sedan följs av ett numeriskt index.

<b>Exempel namngivning:</b>
Det numeriska indexet måste här börja på noll (är givetvis valbart).
t0, t1, t2, t3, t4, t5

<b>Exempel</b>
Javascript-funktionen "calcSum(prefix, result)" tar två argument:
1. Prefixet på de fält du vill summera ihop, i vårt fall "t".
2. Ett namn på ett fält där summan skall skrivas ut.

<html>
 <head>
  <script language="javascript">
   function calcSum(prefix, result) {
    var sum=0, id=0, element;
    while((element=document.getElementById(prefix+id++))!=null)
      sum += parseFloat(element.value);
    document.getElementById(result).innerHTML = sum;
   }
  </script>
 </head>

 <body>
  <input type="text" id="t0" onchange="calcSum('t','result')"><br>
  <input type="text" id="t1" onchange="calcSum('t','result')"><br>
  <input type="text" id="t2" onchange="calcSum('t','result')"><br>
  <input type="text" id="t3" onchange="calcSum('t','result')"><br>
  <span id="result"></span>
 </body>
</html>


/ Peter


Svara

Sv:summera fält med javascript

Postades av 2006-10-12 18:13:50 - Krister Bundy

Detta funkad kanonbra men om jag nu bara vill lägga ihop 2 av fälten och ändå få dem summerade hur gör jag då?


Svara

Sv: summera fält med javascript

Postades av 2006-10-12 20:26:07 - Peter Larsson

<b>Alt 1</b>
Ta endast med två fält.

<b>Alt 2</b>
Använd denna funktionen istället:

   function calcSum(prefix, result, max) {
    var sum=0, id=0, element;
    while((max==-1 || max>id) && (element=document.getElementById(prefix+id++))!=null)
      sum += parseFloat(element.value);
    document.getElementById(result).innerHTML = sum;
   }

Här skickar du, som tredje parameter, med ett tal som anger det maximala antalet fält som skall summeras (-1 anger automatiskt alla).

Ditt anrop i "onchange" blir alltså:
 calcSum('t','result',2)

/ Peter


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 705
27 958
271 751
701
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies