dlaczego skrypt odejmuje zamiast dodawać? |
dlaczego skrypt odejmuje zamiast dodawać? |
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? |
|
|
16.07.2020, 08:06:50
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1824 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. -------------------- |
|
|
16.07.2020, 12:52:26
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 13.07.2020 Ostrzeżenie: (0%) |
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... :-) ) |
|
|
16.07.2020, 14:25:59
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1824 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
1. Usuwasz onclick="calculate()" z checkbox
2. A dodajesz calculate(); w obsłudze onchange. -------------------- |
|
|
16.07.2020, 20:05:34
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 13.07.2020 Ostrzeżenie: (0%) |
|
|
|
Wersja Lo-Fi | Aktualny czas: 13.06.2024 - 04:25 |