Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/05/2009, 00:35
Avatar de Corneja
Corneja
 
Fecha de Ingreso: febrero-2008
Ubicación: Senolaf
Mensajes: 268
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Duda con campos ocultos al seleccionar radio buttons

Bueno a ver si te ayudo...

Si quieres que se pueda mostrar más de un texto (no tiene mucho sentido pero bueno) el HTML te quedaría así

<label><input type="radio" name="newsletter" value="1" id="newsletter-1" onclick="javascript:toggle('email-field','1')" /> Yes</label>
<label><input type="radio" name="newsletter" value="0" id="newsletter-2" onclick="javascript:toggle('name-field','2')"/> No</label>
<br />
<div id="email-field" style="display:none;">
<input type="text" id="email" />
<strong>Add your Email</strong>
</div>
<div id="name-field" style="display:none;">
<input type="text" id="name" />
<strong>Add your Name</strong>
</div>
</body>
</html>

y el java así

function toggle(capa, status)
{
element = document.getElementById(capa);
element.style.display='block';
}

Esto no tiene mucho sentido ya que usas radio buttons (que sirven para que al seleccionar uno se anule el otro), por lo que mejor deberías usar algo así

<form action="" name="formulario" id="formulario">
<label><input type="radio" name="newsletter" value="1" onclick="javascript:toggle(1)" /> Yes</label>
<label><input type="radio" name="newsletter" value="0" onclick="javascript:toggle(2)"/> No</label>
<br />
<div id="capa1" style="display:none;">
<input type="text" id="email" />
<strong>Add your Email</strong>
</div>
<div id="capa2" style="display:none;">
<input type="text" id="name" />
<strong>Add your Name</strong>
</div>
</form>


Y el java sería algo así donde oculta() oculta todas la capas y toogle() muestra solo la que quieras

function oculta()
{
for (i=1;i<=document.formulario.newsletter.length;i++)
{
nombrecapa="capa"+i;
element = document.getElementById(nombrecapa);
element.style.display='none';
}
}

function toggle(status)
{
oculta();
nombrecapa="capa"+status;
element = document.getElementById(nombrecapa);
element.style.display='block';
}