Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z divem
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
joytec
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.
revyag
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 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.
Alkagar
Witam,
nie bardzo wiedzialem gdzie takiego posta napisac wiec dalem go tutaj jakoże dotyczy po częsci diva smile.gif.
Na stronie mam sobie diva. I teraz chcialbym do niego zaladować pewien tekst zawarty w innym pliku ale dopiero po kliknięciu na przycisk badz link. Czy jest taka możliwość??
Kolejnym problemem tutaj jest to kiedy ten tekst bedzie się ładowal do tejze strony czy na samym poczatku czy dopiero po kliknięciu? Najlepiej byloby gdyby można bylo opoznic badz wykonac ta akcje dopiero podczas klikniecia zeby strona ladowala sie szybko na poczatku a potem w miare ogladania strony pobireala kolejne dane ale bez potrzeby odswiezania.

Macie jakies zastrzezenia co do takiego sposobu pobierania danych? Jakieś możliwe problemy z tym związane?

P.S. czy stosowanie element.innerHTML = "cos"; jest niepoprawne? Gdzies spotkalem sie z informacją że czegoś takiego nie powinno sie stosować.

Pozdrawiam,
Alk
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.