Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z divem
joytec
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
revyag
post
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.

  1. <form action="" method="get" name="form1">
  2. <input id="ch1" name="ch1" type="checkbox" value="ch1v" onclick="cc()" />
  3. <table><tbody id="114">
  4. <tr>
  5. <td><input name="ch2" type="checkbox" value="ch2v" /></td>
  6. <td><input name="ch3" type="checkbox" value="ch3v" /></td>
  7. <td><input name="ch4" type="checkbox" value="ch4v" /></td>
  8. </tr></tbody>
  9. </form>


---
używaj odpowiedniego bbcode jak piszesz -> zobacz jak wygląda mój post.
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: 10.10.2025 - 15:01