![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 30.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam chciałbym napisać funkcję jquery ktora będzie wyliczac iloczyn 2 pól i wpisywała je do inputa wynik zaraz po wpisaniu 2 wartosci.
Poniżej przedstawiam obrazy i kod źródłowy: (IMG:http://images38.fotosik.pl/615/053211c552122b7amed.png)
powyższy kod działa dla pierwszego pola (co nie jest rzeczą dziwną) liczba wierszy tabeli jest nieokreślona, co trzeba zastosować aby ta funkcja była bardziej uniwersalna? próbowałem z pętla for lecz niestety nie wyszło mi. Czy zna ktoś jakieś rozwiązanie takiego problemu? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 1 Dołączył: 13.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Proponuję Ci podpiąć zdarzenie pod oba inputy poprzez:
Samo zliczenie wartości to odniesienie się do wiersza poprzez .parent().parent() i znalezienie inputów które tak jak powyżej nie są wyłączone. Ten post edytował ziolo.92 13.02.2011, 00:26:04 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 30.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Niestety albo ja nic z tego nie rozumiem albo z twojej wypowiedzi nic nie wynika.
Mi nie chodziło o to aby się dowiedzieć jak podpiąć zdarzenie pod pola tylko o to jak dokonać stosownych obliczeń dla każdego wiersza ( nie dla wszystkich jednocześnie tylko po zwolnieniu klawisza z pola liczba2 w każdym wierszu z osobna). Docelowy kod będzie posiadał wiele pól wynikowych jak i nie tylko pola input do obliczeń. Mi chodzi o metodę iteracji. Kod powinien być udynamiczniony poprzez zmienne:
Tylko w za pomocą jakiej pętli (jeśli w ogóle pętla wchodzi w grę) powinienem zmienna i inkrementować aby dla 'nieznanej' liczby wierszy móc stosować obliczenia |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 1 Dołączył: 13.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Miałem na myśli takie rozwiązanie:
Dzięki temu masz kod uniezależniony od ilości kolumn i ich kolejności. Lub jeśli chcesz korzystać z pętli co w przypadku jquery będzie znacznie szybsze z powodu odnoszenia się bezpośrednio po id można zrobić tak:
Tyle, że to rozwiązanie ma jeden mankament, mianowicie nie można w id używać znaków '[', ']', dlatego zastąpiłem je jednym znakiem '_' przed liczbą. Pozdrawiam Ten post edytował ziolo.92 13.02.2011, 12:35:26 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 30.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za wyjaśnienia.
Pierwsze rozwiązanie bardzo ukierunkowany tylko na ten typ tabeli (chciałbym do obliczeń korzystając także z pól select i nie mam pojęcia jak zmienić ten kod aby obsługiwał bardziej skomplikowane obliczenia z włączeniem selectów) Drugie rozwiązanie jest bardzo fajne takie o jakie mi chodziło łatwo rozwijalne podpinane do rożnych zdażeń np change selecta... tylko własnie mankament o którym wspomniałeś. Niestety potrzebuje aby t były zmienne tablicowe aby móc w kontrolerze polecieć na nich foreach-em i do bazy. Nie ma żadnej możliwości aby umieścić w tym drugim rozwiązaniu te klamry? Jeśli możesz to powiedz dlaczego to jest nie możliwe. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 1 Dołączył: 13.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Możesz używać notacji tablicowej w taki sposób:
Ale jest to rozwiązanie mało elastyczne. Nadal proponuję Ci skorzystać z poniższego rozwiązania, które mimo że jest wolniejsze to są to takie wartości milisekund, że nie odczujesz różnicy, a dzięki zastosowaniu ":input" odnosi się również do pola select.
Ten post edytował ziolo.92 13.02.2011, 18:23:03 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 30.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dobrze wiec przystaje za twoją radą i wybieram opcje drugą.
Podpowiedz mi tylko jeszcze jak do tego kodu wprowadzić a dokładniej jak rozróżnić pola aby móc np. dodać pole pierwsze z wartością pola trzeciego selecta( stworzonego) i podzielić przez (pole drugie + pole pierwsze) = całość ląduje oczywiście w polu wynik. To jest przykład nie musi być konkretnie to chodzi mi ogólnie o zasadę. Starałem się przerobić ten kod samodzielnie lecz niestety nie dałem rady. Pozdrawiam |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 1 Dołączył: 13.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 13:05 |