Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Dynamiczne zliczanie wartości
Forum PHP.pl > Forum > Przedszkole
krzesik
Witam mam poniższy kod, ale nie działa poprawnie gdzie zrobiłem błąd? Problem polega na tym, że suma pojawia się dopiero po wypełnieniu wszystkich pól. a chciałbym aby pokazywała się od razu

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. //this calculates values automatically
  4. sum();
  5. $("#ilosc0, #ilosc1, #ilosc2, #ilosc3, #ilosc4, #ilosc5, #ilosc6, #ilosc7, #ilosc8, #ilosc9, #ilosc10, #ilosc11, #ilosc12, #ilosc13, #ilosc14").on("keydown keyup", function() {
  6. sum();
  7. });
  8. });
  9.  
  10. function sum() {
  11. var ilosc0 = document.getElementById('ilosc0').value;
  12. var ilosc1 = document.getElementById('ilosc1').value;
  13. var ilosc2 = document.getElementById('ilosc2').value;
  14. var ilosc3 = document.getElementById('ilosc3').value;
  15. var ilosc4 = document.getElementById('ilosc4').value;
  16. var ilosc5 = document.getElementById('ilosc5').value;
  17. var ilosc6 = document.getElementById('ilosc6').value;
  18. var ilosc7 = document.getElementById('ilosc7').value;
  19. var ilosc8 = document.getElementById('ilosc8').value;
  20. var ilosc9 = document.getElementById('ilosc9').value;
  21. var ilosc10 = document.getElementById('ilosc10').value;
  22. var ilosc11 = document.getElementById('ilosc11').value;
  23. var ilosc12 = document.getElementById('ilosc12').value;
  24. var ilosc13 = document.getElementById('ilosc13').value;
  25. var ilosc14 = document.getElementById('ilosc14').value;
  26.  
  27. var result = parseInt(ilosc0) + parseInt(ilosc1) + parseInt(ilosc2) + parseInt(ilosc3) + parseInt(ilosc4) + parseInt(ilosc5) + parseInt(ilosc6) + parseInt(ilosc7) + parseInt(ilosc8) + parseInt(ilosc9) + parseInt(ilosc10) + parseInt(ilosc11) + parseInt(ilosc12) + parseInt(ilosc13) + parseInt(ilosc14);
  28. if (!isNaN(result)) {
  29. document.getElementById('sum').value = result;
  30. }
  31. }</script>
  32.  
trueblue
Zobacz co Ci daje parseInt z pustego pola.

Użyj do pól tej samej klasy. Zsumuj wartości z wszystkich pól o tej samej klasie. Zrobisz to w kilku linijkach.
krzesik
Niestety moja wiedza w JS jest bardzooooo nikła...
koodo218
[JAVASCRIPT] pobierz, plaintext
  1. console.log(parseInt(document.getElementById("ilosc0").value));
[JAVASCRIPT] pobierz, plaintext

Jeżeli input nie ma value domyślnie, to wynik w konsoli powinien być NaN.
Rysh
Cytat(krzesik @ 13.08.2016, 11:58:12 ) *
Niestety moja wiedza w JS jest bardzooooo nikła...

Zwiększasz ilość inputów z klasą number i wciąż działa.
Pozatym jak używasz jQuery to używaj jQuery, nie mieszaj czystego z JS z JQ.
https://jsfiddle.net/70waLqr3/1/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.