Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Cannot read property 'length' of undefined
Forum PHP.pl > Forum > Przedszkole
Octobus
mam problem z przeniesieniem skryptu do szablonu wordpress. Skrypt ustawia opcje drugiego selecta na podstawie tego co sie wybierze w pierwszym. Jego kod:

Kod
<form name="form" action="index.php" method="get">
<select name="classes" onChange="switch_m(this.options.selectedIndex)">
  <option>Chorwacja</option>
  <option>Klasa B</option>
  <option>Klasa C</option>
</select>
<select name="mask"></select>
<input type="submit" value="wyślij" />
</form>

<script language="javascript" type="text/javascript">
function switch_m(wybor) {
  l2=document.form.mask;
  for (i=0;i<l2.options.length;i++) l2.options[i]=null;
  for (i=0;i<opcje[wybor].length;i++)
    l2.options[i]=new Option(opcje[wybor][i].value,opcje[wybor][i].text);
}
ile_lista1=document.form.classes.options.length;
opcje=new Array(ile_lista1)

for (i=0;i<ile_lista1;i++) opcje[i]=new Array();
opcje[0][0]=new Option("Miejsce 1 chorwaca")
opcje[0][1]=new Option("Miejsce 2 chorwaca")
opcje[0][2]=new Option("Miejsce 3 chorwaca")
opcje[0][3]=new Option("Miejsce 4 chorwaca")
opcje[0][4]=new Option("12","255.240.0.0")
opcje[0][5]=new Option("13","255.248.0.0")
opcje[0][6]=new Option("14","255.252.0.0")
opcje[0][7]=new Option("15","255.254.0.0")

opcje[1][0]=new Option("16","255.255.0.0")
opcje[1][1]=new Option("17","255.255.128.0")
opcje[1][2]=new Option("18","255.255.192.0")
opcje[1][3]=new Option("19","255.255.224.0")
opcje[1][4]=new Option("20","255.255.240.0")
opcje[1][5]=new Option("21","255.255.248.0")
opcje[1][6]=new Option("22","255.255.252.0")
opcje[1][7]=new Option("23","255.255.254.0")

opcje[2][0]=new Option("24","255.255.255.0")
opcje[2][1]=new Option("25","255.255.255.128")
opcje[2][2]=new Option("26","255.255.255.192")
opcje[2][3]=new Option("27","255.255.255.224")
opcje[2][4]=new Option("28","255.255.255.240")
opcje[2][5]=new Option("29","255.255.255.248")
opcje[2][6]=new Option("30","255.255.255.252")
opcje[2][7]=new Option("31","255.255.255.254")
switch_m(0);
</script>


Wstawilem te dwa inputy do formy o takim samym name w wordpress na sztywno (pozniej podmienie ze zmiennymi jak juz zacznie dzialac) i pierwszy raz (przy wywolaniu strony) sie wykonuje wpisaujac opcje do drugiego selecta name="mask" a drugi raz już jest nie i jest blad:

Kod
Cannot read property 'length' of undefined


od 3 dni probuje to rozwiazac i nadal nie mam pojecia co robie zle. Kod znajduje się w drugiej formie na dole, input z opcja "Klasa B" na stronie http://ak5.pl/yl4.html
Macie moze jakies sugestie ?
Pozdrawiam
markuz
Nie zagłębiałem się w twój kod aczkolwiek użyj funkcji console.log dzięki której dowiesz się co i jak smile.gif
nospor
Przeciez select max nie ma zadnych opcji, wiec nic dziwnego ze options.length nie istnieje
Octobus
No tak, w kodzie tak jest ale na stronie umieściłem jedną opcję i przy pierwszym wywołaniu funkcji zastępuje je innymi opcjami, jak wywoluje funkcje recznie zmieniajac opcje w pierwszym input to wyskakuje ten wlasnie blad i nie mam pojecia skad bo przeciez sa tam opcje. A jesli chodzi o konsole to wlasnie stamtad mam ten blad, jest on w linijce
Kod
for (i=0;i<l2.options.length;i++) l2.options[i]=null;
nospor
markuzowi chodzilo bys zrobil
console.log(l2);
i zobaczyl co ci to zwraca w konsoli
Octobus
Dziękuję wam bardzo. Console.log bardzo się przydał, dalej już dałem sobie rade sam.
Pozdrawiam gorąco
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.