Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dlaczego skrypt odejmuje zamiast dodawać?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
innyDariusz
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?
trueblue
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.
innyDariusz
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... :-) )
trueblue
1. Usuwasz onclick="calculate()" z checkbox
2. A dodajesz calculate(); w obsłudze onchange.
innyDariusz
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.
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-2024 Invision Power Services, Inc.