Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> onClick przypisane do label z checkboxem wywołuje się dwa razy, jQuery, checkbox
sabat24
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

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


Kod HTML wygląda tak:

  1. kliknij tu
  2. <input name="a" value="1" autocomplete="off" type="checkbox">


JS mam następujący:

  1. $(function() {
  2. $('label').on('click', function() {
  3. alert('click');
  4. });
  5. });


Całość dostępna tutaj -> https://jsfiddle.net/pppxenfb/

Po kliknięciu w napis: kliknij tu, alert wyskakuje dwa razy. Drugim razem zapewne jak checkbox się zaznaczy / odznaczy. Jak można przypisać w takim razie do takiego labela, tylko jedno zdarzenie, zakładając, że nie chcę zmieniać struktury z użyciem "for" oraz ID.

Ten post edytował sabat24 28.04.2018, 13:46:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sabat24
post
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

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


Próbowałem tak, ale wtedy domyślnie nie zaznacza mi checkboxa. Zapewne dałoby się to obejść przez $(this).find('input').prop('checked', true); tylko wtedy sens wrapowania tego labelem zniknąłby.

Edited: Powyższe dotyczyło kodu sprzed Twojej edycji.

Co do celowości. Odziedziczyłem kod, w którym label ma jeszcze 2 potomków i są to elementy <img>, a input jest ukryty. Jest to więc forma checkboxa zastąpionego obrazkami. Kliknięcie na label miało zaznaczać checkboxa, by następnie wysłany formularz zawierał odpowiednie elementy. Dodatkowo onClick, miał powodować dodatkowe zaznaczanie i odnzaczanie innych elementów.

Tyle, że własnie pisząc Ci odpowiedź, uświadomiłem sobie, że to zostało zrobione bezsensu. Zdarzenie, które teraz jest przypięte do onclick, powinno zostać zmienione do onChange inputa i wszystko powinno działać poprawnie.

Ten post edytował sabat24 28.04.2018, 13:59:48
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 10:24