Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] style.display... nie dziala w polaczeniu...
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Pucy
  1. <script language="JavaScript">
  2.  
  3. var old_id = 0;
  4.  
  5. function populate() {
  6.  
  7. var box = document.forms[0].cat_id;
  8.  
  9. var parent_id = box.options[box.selectedIndex].value;
  10.  
  11. document.getElementById(parent_id).style.display='block';
  12.  
  13. document.getElementById(old_id).style.display='none';
  14.  
  15. old_id = parent_id;
  16.  
  17. }
  18.  
  19. </head>
  20. <form action="xcz" method="post">
  21.  
  22. <select name="cat_id" id="cats" onchange="populate()">
  23.  
  24. <option value="ucat1" >X1</option>
  25. <option value="ucat2" >X2</option>
  26. <option value="ucat3" >X3</option>
  27. <br /><br /><br />
  28.  
  29.  
  30. <div id="ucat1" style="display:none">
  31. <select name="parent_id">
  32. <option value="0">Wybierz podkategorie</option>
  33. <option value="xx">1</option>
  34. <br />
  35. </div>
  36. <div id="ucat2" style="display:none">
  37. <select name="parent_id">
  38. <option value="0">Wybierz podkategorie</option>
  39. <option value="xx">1</option>
  40. <br />
  41. </div>
  42. <div id="ucat3" style="display:none">
  43. <select name="parent_id">
  44. <option value="0">Wybierz podkategorie</option>
  45. <option value="xx">1</option>
  46. <br />
  47. </div>
  48. </form>
  49. </body>
  50. </html>


Problem polega na tym ze wywolanie pod rzad:

document.getElementById(parent_id).style.display='block';

document.getElementById(old_id).style.display='none';

"blokuje skrypt" (questionmark.gif?) gdyz wtedy nie zmienia sie old_id.... w momencie gdy wywalimy document.getElementById(old_id).style.display='none'; i damy alerta na sprawdzenie old_id zobaczymy ze sie zmienia... dlaczeg otak sie dzieje?;/
nospor
Przy pierwszym wywolaniu populate() twoje old_id ma wartosc 0. a nie sadze bys mial pole o id 0 smile.gif
Daj warunek ze jesli old_id jest rozne od 0 to dopiero wtedy zmieniasz styl dla old_id
Pucy
nospor dobra, ale to jest najmniej wazne i watpie zeby bylo przyczyna "haczenia" skryptu. Gdyz jak sprawdzalem old_id zmienia wartosc tylko wtedy gdy nie ma lini z : document.getElementById(old_id).style.display='none'; ... c o jest dla mnie dosc dziwne..

P.S. czyli w momencie odwolania sie do getElemenBy ID o id ktory nieistnieje sie wykrzacza?:]

P.S.2 Dziala, thx
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.