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:

<HTML><HEAD>
<TITLE>Táblázat</TITLE>
<script language="JavaScript" src="java.js"></script>
</HEAD>
<BODY bgcolor="#E4F3EA">
  <form name="legordulomenu">
   <select name="fotermekcsoport" onChange="almenuvalasztas(this.options[this.selectedIndex].value)">
   <option value="0">Válasszon csoportot
   <option value="1">Első csoport
   <option value="2">Második csoport
   <option value="3">Harmadik csoport
   <option value="4">Negyedik csoport
   </select>
   <select name="termekalcsoportok" onChange="oldalbetoltes(this.options[this.selectedIndex].value)">
   <option value=" ">&nbsp;
   <option value=" ">&nbsp;
   <option value=" ">&nbsp;
   <option value=" ">&nbsp;
   <option value=" ">&nbsp;
   </select>
   </form>
</body></html>
És itt a java.js file tartalma:

//tömblétrehozás
csoport1_neve=new Array(5);	
csoport1_hely=new Array(5);

csoport2_neve=new Array(5);	
csoport2_hely=new Array(5);

csoport3_neve=new Array(5);	
csoport3_hely=new Array(5);

csoport4_neve=new Array(5);	
csoport4_hely=new Array(5);

//tömbfeltöltés

csoport1_neve[0]="elsőcsoport 1";
csoport1_hely[0]="csoport1/termek1.html";
csoport1_neve[1]="elsőcsoport 2";
csoport1_hely[1]="csoport1/termek2.html";
csoport1_neve[2]="elsőcsoport 3";
csoport1_hely[2]="csoport1/termek3.html";
csoport1_neve[3]="elsőcsoport 4";
csoport1_hely[3]="csoport1/termek4.html";

csoport2_neve[0]="másodikcsoport 1";
csoport2_hely[0]="csoport2/termek1.html";
csoport2_neve[1]="másodikcsoport 2";
csoport2_hely[1]="csoport2/termek2.html";
csoport2_neve[2]="másodikcsoport 3";
csoport2_hely[2]="csoport2/termek3.html";
csoport2_neve[3]="másodikcsoport 4";
csoport2_hely[3]="csoport2/termek4.html";

csoport3_neve[0]="harmadikcsoport 1";
csoport3_hely[0]="csoport3/termek1.html";
csoport3_neve[1]="harmadikcsoport 2";
csoport3_hely[1]="csoport3/termek2.html";
csoport3_neve[2]="harmadikcsoport 3";
csoport3_hely[2]="csoport3/termek3.html";
csoport3_neve[3]="harmadikcsoport 4";
csoport3_hely[3]="csoport3/termek4.html";

csoport4_neve[0]="negyedik csoport 1";
csoport4_hely[0]="csoport4/termek1.html";
csoport4_neve[1]="negyedik csoport 2";
csoport4_hely[1]="csoport4/termek2.html";
csoport4_neve[2]="negyedik csoport 3";
csoport4_hely[2]="csoport4/termek3.html";
csoport4_neve[3]="negyedik csoport 4";
csoport4_hely[3]="csoport4/termek4.html";

//leghosszabb tömb méretének megállapítása

var maxcsoporthossz;
if (csoport1_neve.length>csoport2_neve.length) {maxcsoporthossz=csoport1_neve.length}else{maxcsoporthossz=csoport2_neve.length};
if (csoport3_neve.length>maxcsoporthossz) {maxcsoporthossz=csoport3_neve.length};
if (csoport4_neve.length>maxcsoporthossz) {maxcsoporthossz=csoport4_neve.length};
	    
//első menü kiválasztása után a második menü kitörlése majd feltöltése		
function almenuvalasztas(pozicio)
{
  ideiglenesvaltozo=0;
  while(ideiglenesvaltozo <= maxcsoporthossz){document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].value=" ";
  	document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].text=" ";
	++ideiglenesvaltozo;}
  ideiglenesvaltozo=0;
  while (ideiglenesvaltozo<=eval("csoport" + pozicio + "_neve.length")){
    document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].value=eval("csoport" + pozicio + "_hely[" + ideiglenesvaltozo + "]");
	document.legordulomenu.termekalcsoportok.options[ideiglenesvaltozo].text=eval("csoport" + pozicio + "_neve[" + ideiglenesvaltozo + "]");
	++ideiglenesvaltozo;
     }
}

//Második menü alapján a kért oldalra lépés

function oldalbetoltes(betoltopozicio)
{
  if (betoltopozicio!=" ") {
  document.location=betoltopozicio;
  document.legordulomenu.fotermekcsoport.options[0].selected=true;}
}
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.