JavaScript - Radiobottons en bloque mostrar/ocultar javascript problema

 
Vista:
sin imagen de perfil

Radiobottons en bloque mostrar/ocultar javascript problema

Publicado por Bluescreen (2 intervenciones) el 13/12/2015 21:04:54
Estoy realizando un bloque de radiobotton el problema que tengo es que los radiobottons que voy marcando no quedan marcados me explico, se van desplazando hacia abajo , segundo que cuando selecciono medio de envió , me abre un radiobotton que no quiero que abra , en este caso "otra dirreccion" le puse style.display = "none" pero aun así cuando selecciono el envió me despliega esa opción.

espero que me puedan ayudar muchas gracias.


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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<!DOCTYPE html>
<html>
 
<head>
    <meta charset="UTF-8">
    <title>Title of the document</title>
    <script type="text/javascript">
        function toggle(elemento) {
            if (elemento.value == "a") {
                document.getElementById("Retiro").style.display = "block";
                document.getElementById("domicilio").style.display = "none";
                document.getElementById("OtraDireccion").style.display = "none";
                document.getElementById("MedioEnvio").style.display = "none";
            } else {
                if (elemento.value == "b") {
                    document.getElementById("Retiro").style.display = "none";
                    document.getElementById("domicilio").style.display = "block";
                    document.getElementById("MedioEnvio").style.display = "block";
                    document.getElementById("OtraDireccion").style.display = "none"
                } else {
                    if (elemento.value == "c") {
                        document.getElementById("Retiro").style.display = "none";
                        document.getElementById("domicilio").style.display = "block";
                        document.getElementById("MedioEnvio").style.display = "block";
                        document.getElementById("OtraDireccion").style.display = "none";
                    } else {
                        if (elemento.value = "d") {
                            document.getElementById("Retiro").style.display = "none";
                            document.getElementById("domicilio").style.display = "block";
                            document.getElementById("MedioEnvio").style.display = "block";
                            document.getElementById("OtraDireccion").style.display = "block";
                        } else {
                            if (elemento.value = "MedioEnvioA") {
                                document.getElementById("Retiro").style.display = "none";
                                document.getElementById("OtraDireccion").style.display = "none";
                                document.getElementById("MedioEnvio").style.display = "block";
 
 
                            }
                        }
                    }
                }
            }
        }
    </script>
</head>
 
<body>
 
    <dl>
        <dt><label>Cual opcion:</label></dt>
        <dd>
            <input type="radio" name="tipo_attach" onclick="toggle(this)" value="a"> Retiro Officina
            <input type="radio" name="tipo_attach" onclick="toggle(this)" value="b"> Despacho Domicilio
        </dd>
    </dl>
 
    <div id="Retiro" style="display:none">
        <p>texto</p>
        <p>texto</p>
        <p>texto</p>
    </div>
    <dl>
        <dt><label>Cual opcion:</label></dt>
        <div id="domicilio" style="display:none">
            <dd>
                <input type="radio" name="tipo_attach" onclick="toggle(this)" value="c"> Usar dirección factura
                <input type="radio" name="tipo_attach" onclick="toggle(this)" value="d"> Otra Dirreción
            </dd>
        </div>
    </dl>
    <div id="OtraDireccion" style="display:none">
        <p>texto</p>
        <p>texto</p>
        <p>texto</p>
        <p>texto</p>
        <p>texto</p>
        <p>texto</p>
        <p>texto</p>
        <p>texto</p>
        <p>texto</p>s
    </div>
 
 
    <div id="MedioEnvio" style="display:none">
        <h1>Medio de envio</h1>
        <input type="radio" name="tipo_attach" onclick="toggle(this)" value="MedioEnvioA"> Pullman Cargo
        <input type="radio" name="tipo_attach" onclick="toggle(this)" value="MedioEnvioB"> Turbus
        <input type="radio" name="tipo_attach" onclick="toggle(this)" value="MedioEnvioC"> Chilexpress
 
    </div>
</body>
 
</html>

Dejo el código por mejor compresión

https://www.dropbox.com/s/uyyqitb1bry8t4n/radiobotton.rar?dl=0
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
Imágen de perfil de Jordi
Val: 4
Ha aumentado su posición en 10 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Radiobottons en bloque mostrar/ocultar javascript problema

Publicado por Jordi (76 intervenciones) el 13/12/2015 21:41:55
Buenas,

El tema es que cada grupo de radio debe tener un atributo "name" distinto para que no se comparta la selección, que es lo que te está pasando.

Y como observación, puedes ahorrarte niveles utilizando la sentencia "else if" en vez de poner un if dentro del else. También funciona y sirve para este tipo de situaciones ;).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Radiobottons en bloque mostrar/ocultar javascript problema

Publicado por Bluescreen (2 intervenciones) el 13/12/2015 22:02:15
Gracias por responder, tu me dices que tengo que colocar el atributo name en cada grupo de radioButtons , ¿no me basta con usar un id ? me puedes explicar muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Radiobottons en bloque mostrar/ocultar javascript problema

Publicado por xve (2100 intervenciones) el 14/12/2015 08:02:18
Hola, tal como te dice Jordi, es necesario que modifiques el nombre...El id, no se utiliza en los formularios, se utiliza para JavaScript o CSS, pero no para los formularios de HTML.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar