Przycisk aktywny dopiero po zaznaczeniu checkboxa

Przycisk aktywny dopiero po zaznaczeniu checkboxa
W5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Cześć,

uczę się programować i mam za zadanie zrobić zapewne coś dla Was prostego, a ja jeszcze nie mam w tym doświadczenia.

Mam zrobić button do następnej strony, który będzie aktywny dopiero po tym gdy użytkownik zaznaczy w checkboxie, że akceptuje regulamin. Bez zaznaczenia pola "akceptuję regulamin" w button powinno nie dać się kliknąć.

Mógłbym prosić Was o pomoc w tym jak to zrobić?

Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3394
2

Np tak:

Kopiuj
INPUT.cz + BUTTON {
  pointer-events:none;
  opacity:.5;
}

INPUT.cz:checked + BUTTON {
  pointer-events:auto;
  opacity:1;
}
Kopiuj
<input type="checkbox" name="cz1" class="cz" value="cz1">
<button onclick="alert('to tylko testowa akcja, wywal ten onclick');">A ja przycisk jestem</button>
cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9025
0

@Freja Draco - W sumie fajny pomysł. Ja od razu wszędzie bym pchał JS, a potem wyskakuje smoczyca i daje świeże spojrzenie na temat z innej strony (aczkolwiek, uwzględniając uwagi @mr_jaro poniżej - niekoniecznie lepsze, ale na pewno bardziej widowiskowe)

mr_jaro
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Grudziądz/Bydgoszcz
  • Postów: 5300
1

@cerrato: też bym poszedł w js, jest zwyczajnie bezpieczniejszy, pomysł z css padnie gdy zmieni się struktura danych, poza tym button i checkbox musiały by mieć wspólnego rodzica i nie być w osobnych kontenerach co jest rzadko kiedy możliwe.

W5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Hej, dzięki wielkie za odpowiedź.

Ale chyba nie o to mi chodziło. Łatwiej będzie to chyba zrobić w JS.

Ma to działać tak, że użytkownik widzi pole: [] Akceptuję regulamin.

i pod nim button z napisem "Akcpetuję", który aktywuje się dopiero po zaznaczeniu checkoxa u góry. Kliknięcie w button przekierowuje go do dalszej strony (ale to kliknięcie jest niemożliwe bez zaznaczenia "ptaszka" u góry.

Z góry dzięki

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 644
1
  1. Przypisz checkbox do zmiennej (np. za pomocą funkcji document.querySelector)
  2. Dodaj do checkboxa listener (czyli funkcja która wykona się po jakiejś akcji np. kliknięciu na niego, możesz użyć funkcji addEventListener)
  3. W funkcji rozpoznaj czy checkbox jest zaznaczony i zablokuj/odblokuj button
Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3394
1

Marudy :p

Kopiuj
<input type="checkbox" class="cz1" name="cz1" value="cz1">
<button class="cz1">A ja przycisk jestem</button>
Kopiuj
document.querySelector("BUTTON.cz1").addEventListener("click", function(){if(document.querySelector("INPUT.cz1").checked) {
  alert("akcja! akcja!"); 
} else {
  alert("nie no człowieku, ty czekboks musisz zaznaczyć"); 
}});

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.