Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery][JavaScript] Nadanie wartosci zmiennej przy wybraniu pola RADIO oraz sumowanie tych zmiennych
Forum PHP.pl > Forum > Przedszkole
Ciosek
Witam.

Co chce zrobic:
Chce przypisac przyciskowi radio zmienna a nastepnie wyswietlic sume tych zmiennych

Szczegolowy opis dzialania
Mam dwie grupy przyciskow radio.
Osoba zaznacza pole w pierwszej grupie i w tym momencie zmiennej "sect1" przypisana jest odpowiednia wartosc ( np: 100 )
Nastepnie osoba zaznacza pole w drugiej grupie i w tym momencie zmiennej "sect2" przypisana jest odpowiednia wartosc ( np: 200 )
Na koncu chce aby te wartosci byly zsumowane ( 100 + 200 ) i wyswietlil sie wynik 300

Czego bym nie chcial (o ile to mozliwe)
Korzystania z "value" w radio. Wartosci z "value" maja byc przeslane dalej i roznia sie one od tych ktore chce dodawac

Moj niedzialajacy kod
  1.  
  2. $(document).change(function(){
  3. var suma = sect1 + sect2;
  4. $('#test').html(suma);
  5. });
  6.  
  7. <div id="test"></div>
  8.  
  9. <input id="g1r1" type="radio" name="art" value="small" onclick="var sect1 = 100;"/>
  10. <input id="g1r2" type="radio" name="art" value="med" onclick="var sect1 = 200;"/>
  11. <input id="g1r3" type="radio" name="art" value="big" onclick="var sect1 = 300;"/>
  12.  
  13. <input id="g2r1" type="radio" name="color" value="small" onclick="var sect2 = 100;"/>
  14. <input id="g2r2" type="radio" name="color" value="med" onclick="var sect2 = 200;"/>
  15. <input id="g2r3" type="radio" name="color" value="big" onclick="var sect3 = 300;"/>
  16.  

Daimos
  1. <div id="test"></div>
  2. <input id="g1r1" type="radio" name="art" value="small" data-var="100"/>
  3. <input id="g1r2" type="radio" name="art" value="med" data-var="200"/>
  4. <input id="g1r3" type="radio" name="art" value="big" data-var="300"/>
  5. <script type="text/javascript">
  6. var suma = 0;
  7. $('input["radio"]").change(function(){
  8. suma += parseInt($(this).data('var'));
  9. $('#test').html(suma);
  10. });

może tak?
edit:
w sumie niedokładnie wcześniej przeczytałem opis, a jedynie poprawiłem Twój kod.
Jeśli chcesz, aby na końcu liczyło Ci sumę wszystkich radio, to na końcu zrób coś takiego:
  1. $('input[type="radio"]:selected').each(function(){
  2. console.log($(this).val()); // tutaj powinieneś mieć wszystkie wartosci
  3. });
Ciosek
Dzieki za pomoc jednak cos nadal mi nie dziala.
Przepraszam ale moja wiedza na temat javascript/jquery jest niewielka to tez dla testu wrzucilem czysty kod (myslalem ze moze jakas wtyczka jquery haczy ) na nowa strone jednak nadal nie widze w divie wyniku

Tutaj strona
Link
YourFrog
Hej,

Mistrzem JQuery nie jestem ale mam nadzieje że zrozumiesz przykład. W przykładzie specjalnie dałem jeden input o wartości nie będącej liczbą abyś nie zapomniał w swoim kodzie zabezpieczyć się przed taką ewentualnością. Dodatkowo będziesz musiał sobie selector w JS poprawić ale wydaje mi się że z tym to już sobie sam poradzisz.

Kod wydaje się być jasny także nie będę go tłumaczył.


  1. <title>Przykład</title>
  2. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  3. <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  4. $(document).ready(function(){
  5. $('.clickable').click(clickOnInput);
  6.  
  7. clickOnInput();
  8. });
  9.  
  10. function clickOnInput()
  11. {
  12. var sum = 0;
  13.  
  14. $('input:radio:checked').each(function(){
  15. var dataValue = $(this).attr('data-value');
  16.  
  17. if( dataValue === 'undefinded' || isNaN(dataValue) )
  18. return true;
  19.  
  20. sum += parseInt(dataValue);
  21. });
  22.  
  23. $('.sum').html(sum);
  24. }
  25. </script>
  26. </head>
  27. <div class="group-1">
  28. <input type="radio" value="1" name="group[1]" class="clickable" data-value="xx">
  29. <input type="radio" value="2" name="group[1]" class="clickable" data-value="100">
  30. <input type="radio" value="3" name="group[1]" class="clickable" data-value="1000">
  31. </div>
  32.  
  33. <div class="group-2">
  34. <input type="radio" value="1" name="group[2]" class="clickable" data-value="5">
  35. <input type="radio" value="2" name="group[2]" class="clickable" data-value="50">
  36. <input type="radio" value="3" name="group[2]" class="clickable" data-value="500">
  37. </div>
  38.  
  39. <p>Suma wartości to <span class="sum">0</span></p>
  40. </body>
  41. </html>
owca_82
Może coś w ten deseń wink.gif =>http://jsbin.com/OLORuKAh/5/edit
YourFrog
@Up

Zaznacz u siebie jakiś radio button z drugiego wiersza. Pojawi się piękny "NaN".
owca_82
@Up masz racje już poprawiłem smile.gif
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.