![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Kod <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <title>Untitled Document</title> <script type="text/javascript"> function ccount(chk, name) { var childs = document.getElementById(name).childNodes; if(chk.checked){ for(i = 0; i < childs.length; i++) { if(childs[i].type=="checkbox") { childs[i].disabled=false; } } }else{ for(i = 0; i < childs.length; i++) { if(childs[i].type=="checkbox") { childs[i].disabled=true; } } } } </script> </head> <body> <form action="" method="get" name="form1"> <input name="ch1" type="checkbox" value="ch1v" onclick="ccount(this, 114)" /> <div id="114"> <table><tr> <td><input name="ch2" type="checkbox" disabled value="ch2v" /></td> <td><input name="ch3" type="checkbox" disabled value="ch3v" /></td> <td><input name="ch4" type="checkbox" disabled value="ch4v" /></td> </tr></table> </div> </form> </body> </html> Witam. Funkcja nie dziala po zapisaniu checkboxow w tabele. Dlaczego?. Skrypt po kliknieciu checkboxa aktywizuje reszte lub odwrotnie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
No nie działa bo opiera się na relacji rodzic - potomek, a Ty wsadziłeś checkboxy w tabele, która ma wiersze i komórki i tym sposobem przesunąłeś checkboxa w dół drzewa genealogicznego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod <script type="text/javascript"> function ccount(c) { var chk = document.getElementById("ch1"); for(var i = 0; i < c.length; i++) { if(c[i].type=="checkbox") { if(chk.checked) { c[i].disabled="disabled"; } else { c[i].disabled=""; } } else { if(c[i].hasChildNodes) { ccount(c[i].childNodes); } } } } function cc() { var childs = document.getElementById("114").childNodes; ccount(childs); } </script> --- pierwsza funkcja rekurencyjnie wyłącza lub włącz wszystkie checkboxy druga właściwie tylko wywołuje pierwszą, ale ponieważ pierwsza jest rekurencyjna, więc nie można w niej zdefinować na początku tablicy z dziećmi, ponieważ za każdym razem ta tablica byłaby nadpisywana i z rekurencji nici. --- używaj odpowiedniego bbcode jak piszesz -> zobacz jak wygląda mój post. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 15:01 |