Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Chechbox on click -> reszta checkboxów
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
cadavre
Jak zrobić, aby po zaznaczeniu checkboxa pojawiły się (lub uaktywniły z "szarości") powiedzy cztery pozostałe checkboxy z możliwością zaznaczenia. Nie zależy mi na Ajaxach i innych wodotryskach. tongue.gif
LBO
np. tak.. nie jest to moze najelegantsze rozwiazanie, ale da ci ogolne pojecie:
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script language="javascript">
function odblokuj() {
    document.form1.ch2.disabled = false;
    document.form1.ch3.disabled = false;
    document.form1.ch4.disabled = false;
};
</script>
</head>
<body>
<form action="" method="get" name="form1">
<input name="ch1" type="checkbox" value="ch1v" onclick="odblokuj()" />
<!-- wczesniej chcialem uzyc metody onChange, ale nie dziala w operze 7, a w IE z bledami -->
<input name="ch2" type="checkbox" disabled value="ch2v" />
<input name="ch3" type="checkbox" disabled value="ch3v" />
<input name="ch4" type="checkbox" disabled value="ch4v" />
</form>
</body>
</html>

dziala pod IE, firefoxem, opera 7/8, netscape 7/8, mozilla 1.7/1.8
cadavre
Działa, ale po odznaczeniu pierwszego można dalej zaznaczać pozostałe.
Przydałoby się dorobić drugą funkcję blokuj(); (z tym nie ma problemu), ale jak ją zaaplikować dla ch1, bo zdarzenie onclick jest już zajęte.
Wave
Trzeba by dać do odblokuj() instrukcję warunkową. Jeżeli piewszy jest odznaczony, to blokuj pozostałe.
crash
A tak nie starczy:
  1. <script type="text/javascript">
  2. function showHide()
  3. {
  4. document.frm.ch2.disabled = document.frm.ch3.disabled = document.frm.ch4.disabled = !document.frm.ch1.checked;
  5. }
  6. <form action="" name="frm">
  7. <input name="ch1" type="checkbox" value="ch1v" onclick="showHide();"/>
  8. <input name="ch2" type="checkbox" disabled="disabled" value="ch2v"/>
  9. <input name="ch3" type="checkbox" disabled="disabled" value="ch3v"/>
  10. <input name="ch4" type="checkbox" disabled="disabled" value="ch4v"/>
  11. </form>
cadavre
crash - działa jak trzeba, ale jeszcze jedno: jak to zrobić gdy name="" jest zawsze takie samo?
Próbowałem:
  1. <script language="javascript">
  2. function showHide()
  3. {
  4. document.frm.prawa.disabled = !document.frm.zalogowani.checked;
  5. }
  6. <form action="" name="frm">
  7. <input name="zalogowani" type="checkbox" value="glowny" onclick="showHide();"/>
  8. <input name="prawa" type="checkbox" disabled="disabled" value="abc"/>
  9. <input name="prawa" type="checkbox" disabled="disabled" value="def"/>
  10. <input name="prawa" type="checkbox" disabled="disabled" value="ghi"/>
  11. </form>
LBO
ja nie widze sensu dawac w tym przykladzie taka sama nazwe... ale jezeli musisz znac odpowiedz to mozna wykorzystac metode JavaScript getElementById() i do kazdego inpyt dodc znacznik z ID:
Kod
<script language="javascript">
function showHide()
{
document.getElementById('inp1').disabled = document.getElementById('inp2').disabled = document.getElementById('inp3').disabled = !document.frm.zalogowani.checked;
}
</script>
<form action="" name="frm">
<input name="zalogowani" type="checkbox" value="glowny" onclick="showHide();"/>
<input name="prawa" id="inp1"  type="checkbox" disabled="disabled" value="abc"/>
<input name="prawa" id="inp2" type="checkbox" disabled="disabled" value="def"/>
<input name="prawa" id="inp3" type="checkbox" disabled="disabled" value="ghi"/>
</form>


chociaz..naprawde nie ma to sensu.. NAME jest wtedy nieprzydatne
cadavre
No to jednak będę to musiał wsadzić w całości do php. :/
Bo każdy element checkbox będzie generowany pętlą. Dodam do tego $a=0; $a++ i żeby wstawiał $a w id.
crash
Jeśli nie chcesz tracić danych z tych checkbox'ów to pamiętaj o dodaniu do nazwy [] żeby przesłana została tablica, a nie tylko ostatania wartość.
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-2025 Invision Power Services, Inc.