Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Sumowanie wartości zaznaczonych checkbox'ów
peja1990
post
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


Witam,
mam problem z napisaniem skryptu JS, który odpowiadałby za zliczanie wartości zaznaczonych pól typu checkbox w czasie rzeczywistym.

Mianowicie tak wygląda mój kod HTML:
  1. <label class="chbox">
  2. <input type="checkbox" name="" value="" onClick="sumAddresses('12')" />Firmy budowlane
  3. <label class="chbox">
  4. <input type="checkbox" name="" value="" onClick="sumAddresses('6')" />Firmy budowlane #2
  5. <label class="chbox">
  6. <input type="checkbox" name="" value="" onClick="sumAddresses('57')" />Firmy budowlane #3
  7. <label class="chbox">
  8. <input type="checkbox" name="" value="" onClick="sumAddresses('512')" />Firmy transportowe
  9. <label class="chbox">
  10. <input type="checkbox" name="" value="" onClick="sumAddresses('694')" />Produkcja i przemysł
  11. <label class="chbox">
  12. <input type="checkbox" name="" value="" onClick="sumAddresses('5')" />Motoryzacja
  13. <label class="chbox">
  14. <input type="checkbox" name="" value="" onClick="sumAddresses('0')" />Handel
  15. <label class="chbox">
  16. <input type="checkbox" name="" value="" onClick="sumAddresses('94')" />Restauracje i pizzerie


Chciałbym by po zaznaczeniu pola, którego wartość zdefiniowałem w funkcji onClick="sumAddresses('94')" jego wartość została doliczona do wartości innych zaznaczonych checkbox'ów, a gdy odznaczymy pole to jego wartość zostanie odliczona od sumy wartości innych zaznaczonych pól.

Wynik chciałbym wyświetlać w czasie rzeczywistym w div'ie, którego ID zdefiniowałem jako sumAmount, czyli:
  1. <div id="sumAmount"></div>

  1. document.getElementById("sumAmount").innerHTML(suma);


Jeżeli jest ktoś w stanie mi pomóc przy tym skrypcie, będę bardzo wdzięczny.
Sam, póki co napisałem coś takiego, lecz nie działa to tak jakbym tego oczekiwał.
  1. function sumAddresses(amount) {
  2. var sum = 0;
  3. if($(this).is(':checked')) {
  4. sum = sum - parseFloat(amount);
  5. }
  6. if($(this).is(':checked') === false) {
  7. sum = sum + parseFloat(amount);
  8. }
  9. alert(sum);
  10. };


Serdecznie pozdrawiam,
Kamil Dunaj
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. var sum = 0;
  2. function sumAddresses(x,obj)
  3. {
  4. sum = obj.checked ? sum + parseFloat(x) : sum - parseFloat(x);
  5. document.getElementById('sumAmount').innerHTML = sum;
  6. }
[JAVASCRIPT] pobierz, plaintext


i daj każdemu

  1. <input type="checkbox" name="" value="" onClick="sumAddresses('12')" />Firmy budowlane


dodatkowo "this":

  1. <input type="checkbox" name="" value="" onClick="sumAddresses('12',this)" />Firmy budowlane


(IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
peja1990
post
Post #3





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


Cytat(Sephirus @ 19.12.2011, 16:04:26 ) *
[JAVASCRIPT] pobierz, plaintext
  1. var sum = 0;
  2. function sumAddresses(x,obj)
  3. {
  4. sum = obj.checked ? sum + parseFloat(x) : sum - parseFloat(x);
  5. document.getElementById('sumAmount').innerHTML = sum;
  6. }
[JAVASCRIPT] pobierz, plaintext


i daj każdemu

  1. <input type="checkbox" name="" value="" onClick="sumAddresses('12')" />Firmy budowlane


dodatkowo "this":

  1. <input type="checkbox" name="" value="" onClick="sumAddresses('12',this)" />Firmy budowlane


(IMG:style_emoticons/default/wink.gif)



O to właśnie chodziło !
Dzięki wielkie (IMG:style_emoticons/default/exclamation.gif) !
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 12:52