Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Cannot read property 'length' of undefined
Octobus
post 20.02.2014, 11:04:36
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
markuz
post 20.02.2014, 11:35:49
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
nospor
post 20.02.2014, 11:39:34
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez select max nie ma zadnych opcji, wiec nic dziwnego ze options.length nie istnieje


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Octobus
post 20.02.2014, 12:05:53
Post #4





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

Ostrzeżenie: (0%)
-----


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;
Go to the top of the page
+Quote Post
nospor
post 20.02.2014, 12:12:24
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




markuzowi chodzilo bys zrobil
console.log(l2);
i zobaczyl co ci to zwraca w konsoli


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Octobus
post 20.02.2014, 12:51:32
Post #6





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

Ostrzeżenie: (0%)
-----


Dziękuję wam bardzo. Console.log bardzo się przydał, dalej już dałem sobie rade sam.
Pozdrawiam gorąco
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 09:53