Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Automatyczne odliczanie inputów i zmienianie ich klas
michal_s
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

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


Problem wygląda tak.
Mam sobie kilka zwykłych inputów np.

  1. <input name="xx1" id="xx1" type="text">
  2. <input name="xx2" id="xx2" type="text">


I chcę, aby były one automatycznie sumowane. Problem polega na tym, że są one w kilku divach, które się rozwijają gdy użytkownik zaznaczy jakiś checkbox. I nie chcę, aby było tak, że ktoś zaznaczy checkbox i wpisze jakąś kwotę a potem odczepi checkbox a ilość z inputa, który wtedy zniknął i tak będzie wtedy liczona.
Więc zrobiłem tak:
  1. $('#jakis_checkbox_o_id').click(function(){
  2. $('#xx1').toggleClass('price');
  3. });
  4.  
  5. $('#jakis_checkbox_o_id2').click(function(){
  6. $('#xx2').toggleClass('price');
  7. });


Oraz zliczanie:
  1. $.fn.sumValues = function() {
  2. var sum = 0;
  3. this.each(function() {
  4. if ( $(this).is(':input') ) {
  5. var val = $(this).val();
  6. } else {
  7. var val = $(this).text();
  8. }
  9. sum += parseFloat( ('0' + val).replace(/[^0-9-\.]/g, ''), 10 );
  10. });
  11. return sum;
  12. };
  13.  
  14. $(document).ready(function() {
  15. $('input.price').bind('keyup', function() {
  16. $('span.total').html( $('input.price').sumValues() );
  17. });
  18. });


Wszystko pięknie działa tylko nie automatycznie. Jeśli zamknę checkboxa to, żeby ilość w spanie o nazwie total się zmieniła to muszę coś zmienić w innym inpucie, który jest aktywny a to bez sensu.
jak to zrobić żeby po odkliknięciu checkboxa automatycznie zmieniała się wartość total?
mam nadzieję, ze dobrze to objaśniłem:)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
michal_s
post
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

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


Chociaż teraz widzę, że problem jest jeszcze bardziej zagmatwany. JS nie liczy mi tych inputów, które po zalogowaniu strony nie miały clasy price i która im została dodana dopiero poprzez JS po zaznaczeniu checkboxa. Zaczyna je liczyc dopiero po 'keyup' wykonanym na jakimś inpucie, który miał tą klasę przy załadowaniu strony. Jak to ominąć żeby liczył też te, które mają tą klasę dodaną potem?
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: 18.10.2025 - 00:22