JavaScript - Inconveniente con array

 
Vista:
sin imagen de perfil

Inconveniente con array

Publicado por Kevin (6 intervenciones) el 09/10/2016 22:37:34
Que tal amigos, he venido trabajando en esto desde hace mas de una semana :S y aun no logro sulucionarlo, tengo un formulario con categorias y subcategorias que dependen de las antes mencionadas categorias, habia encontradao una forma que al principio pense que funcionaba al 100 sin embargo encontre algun tipo de bug.... Dejare el codigo abajo, por ejemplo selecciono la categoria "Abarrotes" y selecciono algo de la Subcategoria, pero asumiendo que me equipo y no eran abarrotes sino "Farmacos", regreso a la categoria y selecciono farmacos, la subcategoria me muestra los famacos pero tambien me muestra parte de Abarrotes, sin embargo si desde un principio yo selecciono "Farmacos" la subcategoria solo me muestra farmacos, alguien sabe que estoy haciendo mal?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
  <title>Test</title>
</head>
<body>
 
<form action="try.html" method="get">
<select name="CATEGORIA"  onchange=cargar()>
<option value="">Seleccione una categoria
<option value="Abarrotes">Abarrotes</option>
<option value="Electrónicos">Electrónicos</option>
<option value="Fármacos">Fármacos</option>
<option value="Hogar, jardín y herramientas">Hogar, jardín y herramientas</option>
<option value="Línea blanca">Línea blanca</option>
<option value="Los mas pequeños">Los mas pequeños</option>
<option value="Moda">Moda</option>
<option value="Útiles y oficina">Útiles y oficina</option>
<option value="Videojuegos y diversión">Videojuegos y diversión</option>
</select>
<select name="SUBCATEGORIA" disabled>
<option>Primero seleccione una categoria</option>
</select>
<input type="submit" name="Envia">
</form>
    <script>
    cosas=["Primero seleccione una categoria",["Alimentos básicos y misceláneos","Carne","Cerales","Congelados","Cuidado personal","Frutas y verduras","Lácteos","Pan"],["Accesorios computadoras","Cámaras","Celulares y accesorios","Computadoras y tabletas","TV y Video"],["Fármacos","Preservativos","Otros"],["Cocina utensilios","Decoración","Herramientas","Jardinería","Muebles"],["Estufas","Lavadoras","Microondas","Otros línea blanca","Refrigeradoras","Secadoras"],["Bebes","Figuras de acción","Muñecas y accesorios","Prendas de vestir"],["Fragancias","Joyas y accesorios","Para el","Para ella"],["Escritorios","Escuela y oficina"],["Accesorios videojuegos","Consolas","Deportes y actividades al aire libre","Videojuegos"]];
    function cargar(){
    document.forms[0].SUBCATEGORIA.disabled=true;
    for (a=0;a<10;a++){
    document.forms[0].SUBCATEGORIA.options[a] = null;
    }
    opcion=document.forms[0].CATEGORIA.options.selectedIndex;
    if (opcion==0){document.forms[0].SUBCATEGORIA.options[0]=new Option("Primero seleccione una categoria","Primero seleccione una categoria","defaultSelected");
    return false;}
    for (a=0;a<cosas[opcion].length;a++){
    document.forms[0].SUBCATEGORIA.options[a] = new Option(cosas[opcion][a],cosas[opcion][a]);
    }
    document.forms[0].SUBCATEGORIA.disabled=false;
    }
    </script>
</body>
</html>

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder