ugrás a tartalomhoz

Javascript nem látja szögletes zárójelen belül a változót

Aquir · 2005. Szep. 15. (Cs), 15.57
Egy könyvből tanulom a JavaScriptet és picit önállósítottam magam, mert nem úgy akarok gyakorolni, hogy bemásolom a könyv feladatát a gépre és örülök mint majom a farkának hogy működik. A saját kódom viszont nem megy....az érdekesség viszont az hogy olyan rész nem megy, amit a könyvben is alkalmaznak.
Kiemeltem a hibás részt mert nem akartam fölöslegesen az egész hosszú kódot beírni:

ideiglenesvaltozo=2; maxcsoporthossz=5;
while(ideiglenesvaltozo <= maxcsoporthossz){
document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].value=" ";
document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].text=" ";
++ideiglenesvaltozo;}

Az első sorban a 2 változónak fix értéket adtam az egyszerűsítés miatt, hogy a kiemelt pár sorban is látszódjék mi van bennük. A hiba: a szögletes zárójel között van....valamiért nem változónak látja az "ideiglenesvaltozo" -t. Az explorer a teljes kódban erre a sorra mondja hogy: "'document.legordulomenu.termekalcsoportok' értéke NULL vagy nem objektum"
Ha a változó helyett a szögleteszárójelbe beírtam akármi zagyvaságot, akkor is ez a hibaüzi, szóval szerintem nem változónak látja hanem már a szöveget magának az értéknek. Az a baj, hogy a könyv ugyanúgy használ ílyen módon változót a zárójelen belül és szerinte működik.

Ezért kérdezem mi lehet a gond?

Ha kevés a kód akkor bemásolhatom az egészet is ha kell.
Előre is köszi a válaszokat.
 
1

Nem létezik

Poetro · 2005. Szep. 15. (Cs), 16.35
Már maga a document.legordulomenu.termekalcsoportok objektum nem létezik.
--------
Poetro
2

<Nincs cím>

Aquir · 2005. Szep. 16. (P), 09.37
Létezik, csak mint mondtam nem írtam be az égész kódot. Itt a rész amire valószínű gondoltál, hogy nincs:
  1. <HTML><HEAD>  
  2. <TITLE>Táblázat</TITLE>  
  3. <script language="JavaScript" src="java.js"></script>  
  4. </HEAD>  
  5. <BODY bgcolor="#E4F3EA">  
  6.   <form name="legordulomenu">  
  7.    <select name="fotermekcsoport" onChange="almenuvalasztas(this.options[this.selectedIndex].value)">  
  8.    <option value="0">Válasszon csoportot  
  9.    <option value="1">Első csoport  
  10.    <option value="2">Második csoport  
  11.    <option value="3">Harmadik csoport  
  12.    <option value="4">Negyedik csoport  
  13.    </select>  
  14.    <select name="termekalcsoportok" onChange="oldalbetoltes(this.options[this.selectedIndex].value)">  
  15.    <option value=" ">&nbsp;  
  16.    <option value=" ">&nbsp;  
  17.    <option value=" ">&nbsp;  
  18.    <option value=" ">&nbsp;  
  19.    <option value=" ">&nbsp;  
  20.    </select>  
  21.    </form>  
  22. </body></html>  
És itt a java.js file tartalma:
  1. //tömblétrehozás  
  2. csoport1_neve=new Array(5);   
  3. csoport1_hely=new Array(5);  
  4.   
  5. csoport2_neve=new Array(5);   
  6. csoport2_hely=new Array(5);  
  7.   
  8. csoport3_neve=new Array(5);   
  9. csoport3_hely=new Array(5);  
  10.   
  11. csoport4_neve=new Array(5);   
  12. csoport4_hely=new Array(5);  
  13.   
  14. //tömbfeltöltés  
  15.   
  16. csoport1_neve[0]="elsőcsoport 1";  
  17. csoport1_hely[0]="csoport1/termek1.html";  
  18. csoport1_neve[1]="elsőcsoport 2";  
  19. csoport1_hely[1]="csoport1/termek2.html";  
  20. csoport1_neve[2]="elsőcsoport 3";  
  21. csoport1_hely[2]="csoport1/termek3.html";  
  22. csoport1_neve[3]="elsőcsoport 4";  
  23. csoport1_hely[3]="csoport1/termek4.html";  
  24.   
  25. csoport2_neve[0]="másodikcsoport 1";  
  26. csoport2_hely[0]="csoport2/termek1.html";  
  27. csoport2_neve[1]="másodikcsoport 2";  
  28. csoport2_hely[1]="csoport2/termek2.html";  
  29. csoport2_neve[2]="másodikcsoport 3";  
  30. csoport2_hely[2]="csoport2/termek3.html";  
  31. csoport2_neve[3]="másodikcsoport 4";  
  32. csoport2_hely[3]="csoport2/termek4.html";  
  33.   
  34. csoport3_neve[0]="harmadikcsoport 1";  
  35. csoport3_hely[0]="csoport3/termek1.html";  
  36. csoport3_neve[1]="harmadikcsoport 2";  
  37. csoport3_hely[1]="csoport3/termek2.html";  
  38. csoport3_neve[2]="harmadikcsoport 3";  
  39. csoport3_hely[2]="csoport3/termek3.html";  
  40. csoport3_neve[3]="harmadikcsoport 4";  
  41. csoport3_hely[3]="csoport3/termek4.html";  
  42.   
  43. csoport4_neve[0]="negyedik csoport 1";  
  44. csoport4_hely[0]="csoport4/termek1.html";  
  45. csoport4_neve[1]="negyedik csoport 2";  
  46. csoport4_hely[1]="csoport4/termek2.html";  
  47. csoport4_neve[2]="negyedik csoport 3";  
  48. csoport4_hely[2]="csoport4/termek3.html";  
  49. csoport4_neve[3]="negyedik csoport 4";  
  50. csoport4_hely[3]="csoport4/termek4.html";  
  51.   
  52. //leghosszabb tömb méretének megállapítása  
  53.   
  54. var maxcsoporthossz;  
  55. if (csoport1_neve.length>csoport2_neve.length) {maxcsoporthossz=csoport1_neve.length}else{maxcsoporthossz=csoport2_neve.length};  
  56. if (csoport3_neve.length>maxcsoporthossz) {maxcsoporthossz=csoport3_neve.length};  
  57. if (csoport4_neve.length>maxcsoporthossz) {maxcsoporthossz=csoport4_neve.length};  
  58.           
  59. //első menü kiválasztása után a második menü kitörlése majd feltöltése        
  60. function almenuvalasztas(pozicio)  
  61. {  
  62.   ideiglenesvaltozo=0;  
  63.   while(ideiglenesvaltozo <= maxcsoporthossz){document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].value=" ";  
  64.     document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].text=" ";  
  65.     ++ideiglenesvaltozo;}  
  66.   ideiglenesvaltozo=0;  
  67.   while (ideiglenesvaltozo<=eval("csoport" + pozicio + "_neve.length")){  
  68.     document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].value=eval("csoport" + pozicio + "_hely[" + ideiglenesvaltozo + "]");  
  69.     document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].text=eval("csoport" + pozicio + "_neve[" + ideiglenesvaltozo + "]");  
  70.     ++ideiglenesvaltozo;  
  71.      }  
  72. }  
  73.   
  74. //Második menü alapján a kért oldalra lépés  
  75.   
  76. function oldalbetoltes(betoltopozicio)  
  77. {  
  78.   if (betoltopozicio!=" ") {  
  79.   document.location=betoltopozicio;  
  80.   document.legordulomenu.fotermekcsoport.options[0].selected=true;}  
  81. }  
Egyébként ha nem a változó van a szögletes zárójelben hanem, mondjuk beírok egy 1-est akkor nem áll meg hibával hanem továbbmegy, szóval akkor nem hiányol semmit. Lehet van benne még sok más hiba is - lehet hogy nincs - de jelenleg ez az első aminél elakadtam.

Esetleg ha valakinek van valami ötlete, pls írja le.
Thx.