Siema... mam prosty skrypt, który działą tak, ze po wciśnięciu opcji "Higiena" w select 1, w następnym seleccie wyświetla się kilka pozycji. Po wciśnięciu innej opcji z select 1- lista w select 2 powinna zostać oczyszczona, jednak nie jest czyszczona kompletnie i nie mam pojęcia dlaczego... Proszę o pomoc...

  1. <script language="JavaScript" type="text/javascript">
  2.  
  3. function updateForm(od,cel)
  4. {
  5. var len=cel.options.length;
  6. for (i=0; i <= len; i++)
  7. {
  8. cel.options[i] = null;
  9. }
  10. for(i=0; i < od.length; i++)
  11. {
  12. if (od.options[i].selected == true)
  13. {
  14. switch (od.options[i].value) {
  15. case '1': cel.options[0] = new Option('Materiały','7');
  16. cel.options[1] = new Option('Urządzenia','8');
  17. cel.options[2] = new Option('Inne','9');
  18. break;
  19. case '2': cel.options[0] = new Option('Czyściwa','10');
  20. cel.options[1] = new Option('Urządzenia doz.','11');
  21. cel.options[2] = new Option('Ubrania ochronne','12');
  22. cel.options[3] = new Option('Pasty do rąk','13');
  23. cel.options[4] = new Option('Inne','14');
  24. break;
  25. }
  26. }
  27. }
  28. }
  29. </head>
  30.  
  31.  
  32.  
  33.  
  34. <form name='formularz' action='nowy.php' method='POST'>
  35.  
  36. <select size='6' name='grupa1' onChange="updateForm(this,grupa2); return true;">
  37. <option value='1'>Higiena</option>
  38. <option value='2'>Przemysł</option>
  39. <option value='3'>Sprzątanie</option>
  40. <option value='4'>Ochr. obiektów</option>
  41. <option value='5'>Art. ogrodnicze</option>
  42. <option value='6'>Inne</option>
  43. </select>
  44.  
  45. <select size='6' name='grupa2' onChange="updateForm(this,grupa3); return true;">
  46. </select>
  47.  
  48. <select size='6' name='grupa3' onChange="updateForm(this,grupa4); return true;">
  49. </select>
  50.  
  51. </form>
  52.  
  53. </body>





wszystko działa tak jak należy dopiero po trzykrotnym wykonaniu tego kodu:

for (i=0; i <= len; i++)
{
cel.options[i] = null;
}

dlaczego nie po jednokrotnym? o co chodzi? Nie ma konfliktu ze zmienną globalną bo nie ma takowej ;p