Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dynamiczne sumowanie wartości pól input
Forum PHP.pl > Forum > Po stronie przeglądarki
simi20
witam, posiadam na stronie formularz z dynamicznymi polami których wartości są sumowane i suma jest wyświetlana w polu<tt>
chodzi o to aby suma tych podliczeń była zapisana w polu input typu text, które będę mógł potem walidować czy suma jest równa 100pkt.
Funkcja która zlicza i zapisuje wynik w polu <tt></tt>:
  1.  
  2. jQuery(function($) {
  3.  
  4. const LIMIT = 100;
  5.  
  6. var counter = { value: 0 };
  7. var $inputs = $('#formID input[type="text"][name^="value"]');
  8. var $counter = $('#formID div > tt');
  9.  
  10. var count = function(e, c) {
  11. c.value = 0;
  12. e.each(function() {
  13. var count = parseInt(this.value, 10);
  14. c.value += !isNaN(count) ? count : 0;
  15. });
  16. $counter.text(c.value);
  17. };
  18.  
  19. count($inputs, $counter);
  20. $inputs.keyup(function() {
  21. count($inputs, $counter);
  22. });
  23.  


jak zmodyfikować ten kod żeby suma zapisywała się w polu input?questionmark.gif dodam tylko że gdy zmieniam tą linijkę
  1. var $counter = $('#formID div > tt');


na

  1. var $counter = $('#formID div > input[name="sum"]');


to niestety nic się nie dzieje.Z góry dziękuję za wszelkie wskazówki
markonix
Teraz jest tam text() ustawiający tekst w danym elemencie.
Ty chcesz wartość inputa zmienić więc powyższa funkcja niezbyt pasuje, użyj właściwej val().
simi20
wiesz ogólnie nie znam się na jquery ani javie dopiero zaczynam się tego uczyć a muszę coś takiego zrobić i nie wiem czy wystarczy w takim razie zmienić tylko to cos w tej linijce
  1. var $counter = $('#formID div > tt');

czy muszę zmieniać całą funkcje.
markonix
Skrypt nie ma nic wspólnego z Javą.

Na początek spróbuj po prostu zastąpić funkcje tą którą podałem.
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.