Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dlaczego skrypt odejmuje zamiast dodawać?
innyDariusz
post 16.07.2020, 00:39:15
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.07.2020

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


Się kłaniam i od razu pytam: co tu jest nie tak? Oto szczegóły problemu (chodzi o tę stronę: http://jsfiddle.net/6ARdN/).

Po załadowaniu stronki mamy wszystkie pola wyzerowane, stąd i suma wynosi zero. Cudownie, jak na razie działa. Wybieramy sobie dowolną kombinację żarełka - zawsze suma się zgadza. Ale... tu skończyły się żarty, zaczęły się schody: gdyby wpadło nam do głowy nagrodzić kelnera napiwkiem (zaznaczając boxa), to... nic się nie dzieje. Nie, to nie, odznaczamy boxa i tu niespodzianka: suma zwiększa się teraz. Niezaznaczony box, a suma wyższa. W związku z tym, żeby wszystko się zgadzało, znów klikamy w boxa, żeby był zaznaczony, a suma się zmniejsza. I tak już do końca, aż się nam znudzi.

To samo się dzieje wtedy, gdy po załadowaniu strony od razu pójdziemy do boxa, rezygnując z jedzenia i tylko nagradzając kelnera napiwkiem: po zaznaczeniu suma wynosi 0, po odznaczeniu: 10.

Pytanie nie jest bardzo zaskakujące: gdzie jest błąd?
Go to the top of the page
+Quote Post
trueblue
post 16.07.2020, 08:06:50
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Dlatego, że kod wygląda jak wygląda.

Zamiast przypinać onclick="calculate()" do checkboxa, przenieś wywołanie tej funkcji do obsługi zdarzenia onchange dla tego elementu.


--------------------
Go to the top of the page
+Quote Post
innyDariusz
post 16.07.2020, 12:52:26
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.07.2020

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


Cytat(trueblue @ 16.07.2020, 09:06:50 ) *
Zamiast przypinać onclick="calculate()" do checkboxa, przenieś wywołanie tej funkcji do obsługi zdarzenia onchange dla tego elementu.

A czy byłaby wielką bezczelnością prośba o pokazanie, jak to konkretnie ma wyglądać? (Wtedy może zrozumiałyby też osoby, które o tych rzeczach mają pojęcie więcej niż niewielkie - np. ja... :-) )
Go to the top of the page
+Quote Post
trueblue
post 16.07.2020, 14:25:59
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


1. Usuwasz onclick="calculate()" z checkbox
2. A dodajesz calculate(); w obsłudze onchange.


--------------------
Go to the top of the page
+Quote Post
innyDariusz
post 16.07.2020, 20:05:34
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.07.2020

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


Cytat(trueblue @ 16.07.2020, 15:25:59 ) *
1. Usuwasz onclick="calculate()" z checkbox
2. A dodajesz calculate(); w obsłudze onchange.

OK, w wolnej chwili się pobawię dla ogólnego rozwoju. Ale ponieważ problem z kotletami już dobrzy ludzie rozwiązali mi gdzie indziej ;-) , to tutaj kończę.
Pozdrowienia.
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 29.03.2024 - 15:57