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 1978 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

  • 22:47 Faktorer som påverkar bilens andra
  • 14:23 Портал о чрезвычайных ситуациях
  • 09:39 Why are here few women buy the les
  • 19:53 Toppkvalitet uppkoppling
  • 16:35 Эскорт вакансии для девушек
  • 14:39 Rainbet Casino
  • 13:47 Professional mining software
  • 13:18 Website builder

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 571 568
27 966
271 795
557
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