Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Problem z checkboxem i divem
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kazet
nigdy nie bawilem sie w jave, no moze kiedys ale niestety nadeszla potrzeba uzycia.. no i przy napisaniu/uzyciu innego/przerabianiu inncyh pojawil sie problem. tak sie bawilem no i ofc nie dziala tak jak powinien, bo wogle nie dziala.

Chciałem napisac skrypt, który: po kliknięciu na nazwę, pokazuje mi obrazek i zaznacza checkbox; przy ponownym kliknięciu odznacza i chowa obrazek. skrypt ktory napisalem wyglada tak:

-----
Kod
     var state = 'hide';
      
      function showhide(divid, boxid) {
      
      if (state == 'hide') {
      state = 'show';
      }
      else {
      state = 'hide';
      }
      
      if(state == 'hide') {
      getElementById(divid).style.display = 'none';
      getElementById(boxid).checked = 'false';
      state = 'show';
      }
      else {
      getElementById(divid).style.display = 'block';
      getElementById(boxid).checked = 'true';
      state = 'hide';
      }
      
      }

-----

no i do tego czesc html

Kod
   <p><a href="#" onclick="showhide(div1, box1);">schowaj/ukryj
    <form>
    <input type="checkbox" id="box1">
    </form>
    <div id="div1" style="display: none;">tekst</div>
    </a></p>


niestety lipa... nie znaznacza, nie pokazuje.. juz nic :/ jezeli ktos zna sie chociaz troche na javie, moze moglby wskazac bledy lub jakies inne rozwiazanie, to baaardzo bym sie cieszyl biggrin.gif

@edit
Cezar jak ci dziekowac? biggrin.gif
Cezar708
na początek
document.getElementById(..
zamiast samego
getElementById(...

po drugie
(..)checked = false;
zamiast
(..)checked = 'false';

podobnie rzecz się ma ze słowem true

po trzecie to jest JavaScript a nie Java smile.gif

po czwarte
po co:
Kod
     if (state == 'hide') {
     state = 'show';
     }
     else {
     state = 'hide';
     }

skoro potem nic z tym nie robisz
kazet
w sumie to naprawde to nie bylo potrzebne winksmiley.jpg nom cos tam pozmienialem ale nadal nie działa :/

Kod
var state = 'hide';

function showhide(divid, boxid) {

if(state == 'hide') {
document.getElementById(divid).style.display = 'none';
document.getElementById(boxid).checked = false;
state = 'show';
}
else {
document.getElementById(divid).style.display = 'block';
document.getElementById(boxid).checked = true;
state = 'hide';
}

}
Cezar708
a nie łatwiej tak:
  1. function toogleShow(checkBox, divId){
  2. if ( checkBox.checked ){
  3. document.getElementById(divId).style.display = 'block';
  4. } else {
  5. document.getElementById(divId).style.display = 'none';
  6. }
  7. }
  8. <input type="checkbox" onChange="toogleShow(this, 'test')">
  9. <div id="test" style="display: none;">
  10. widać?
  11. </div>


oczywiście szczegóły dostosuj pod siebie.


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