Foros del Web » Programando para Internet » Javascript »

Condicion en boton radio

Estas en el tema de Condicion en boton radio en el foro de Javascript en Foros del Web. Hola a todos los maquinas del forosdelweb. Estoy aprendiendo javascript y tengo un problema. Os comento. Tengo un formulario con 3 input tipo radio y ...
  #1 (permalink)  
Antiguo 23/02/2013, 16:31
 
Fecha de Ingreso: mayo-2012
Mensajes: 23
Antigüedad: 12 años, 7 meses
Puntos: 1
Condicion en boton radio

Hola a todos los maquinas del forosdelweb.
Estoy aprendiendo javascript y tengo un problema.
Os comento.
Tengo un formulario con 3 input tipo radio y al lado de este input tipo radio hay un input tipo text para rellenar dependiendo del radio marcadado.
Os pongo aqui el formulario:
Código HTML:
<html>
<head><title>Formulario Prueba</title></head>
<body>
<form name="form_prueba" action="datos.php" method="Post">
<fieldset>
<legend>¿CÓMO DESEA RECIBIR EL PRESUPUESTO?</legend>
<div>
<table>
<tr>
<td class="td-class3">
<input name="f_envio" type="radio" value="CORREO" class="texto" id="id1"/> Por correo ordinario. <strong>Dirección</strong>
</td>
</tr>
<tr>
<td>
<input name="e_direccion" type="text" class="texto" id="e_direccion" size="25" maxlength="25" />
</td>
</tr>
<tr>
<td class="td-class3">
<input name="f_envio" type="radio" value="EMAIL" class="texto" checked id="id2" /> Por correo electrónico. <strong>Email</strong>
</td>
</tr>
<tr>
<td>
<input name="e_email" type="text" class="texto" id="e_email" size="25" maxlength="25" />
</td>
<tr>
<td class="td-class3">
<input name="f_envio" type="radio" value="DESPACHO" class="texto"> Solicitando cita en el despacho de la administración.
</td>
</tr>
</table>
</div>
</fieldset>
<div>
<input type="submit" id="enviar" class="fade" name="enviar" value="Enviar" />
</div>
</form>
</body>
</html> 
Lo que quiero es que antes de enviar el formulario, éste, se valide si el dato del input tipo text fue rellenado pero dependiendo del radio marcado.
Ej:. Si marco el radio email "Que quiero recibir el presupuesto por email", que me lleve al input tipo text para rellenarlo con el email y si se me olvida rellenarlo al enviar el formulario que aparezca un mensaje "DEBES RELLENAR EL CAMPO EMAIL".
Alguien me puede ayudar con este reto?
Gracias de antemano.
  #2 (permalink)  
Antiguo 23/02/2013, 17:08
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Condicion en boton radio

Fijate de intentar algo y luego lo evaluamos

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 23/02/2013, 20:42
 
Fecha de Ingreso: mayo-2012
Mensajes: 23
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Condicion en boton radio

Cita:
Iniciado por emprear Ver Mensaje
Fijate de intentar algo y luego lo evaluamos

SAludos
OK.
Mira puse un código para que al hacer click en el input tipo radio me llevase al input tipo text correspondiente y que los demas inputs tipo text se deshabilatasen.
El siguiente código lo puse en el HEAD.
Código HTML:
<script>
	function habilita(){
		if(document.form_prueba.e_direccion.disabled == true) {
				document.form_prueba.e_direccion.disabled = false;
				document.form_prueba.e_email.disabled = true;
		     } 
		}
		function habilita2(){
		if(document.form_prueba.e_email.disabled == true) {
				document.form_prueba.e_direccion.disabled = true;
				document.form_prueba.e_email.disabled = false;
		     } 
		}

</script> 
Y en el BODY puse eso.
Código HTML:
<input name="f_envio" type="radio" value="CORREO" class="texto" onClick="habilita()" /> Por correo ordinario. <strong>Dirección</strong>
<input name="e_direccion" type="text" class="texto" id="uno" size="25" maxlength="25" disabled />

<input name="f_envio" type="radio" value="EMAIL" class="texto" checked  onClick="habilita2()" /> Por correo electrónico. <strong>Email</strong> 
Pero ahora me falta hacer la validación:
Que si el input tipo radio (POR EJEMPLO: EMAIL) está checkeado y el input tipo text (EMAIL) está vacio que se ponga en rojo el input tipo text o que me muestre un mensaje o algo asi.
Alguien me puede ayudar?

Última edición por alfadaemon; 23/02/2013 a las 20:44 Razón: fallo ortografico
  #4 (permalink)  
Antiguo 23/02/2013, 22:28
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Condicion en boton radio

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.     function habilita(){
  7.     document.form_prueba.e_direccion.disabled = false;
  8.     document.form_prueba.e_email.disabled = true;
  9.     }
  10.     function habilita2(){
  11.     document.form_prueba.e_direccion.disabled = true;
  12.     document.form_prueba.e_email.disabled = false;
  13.     }
  14.  
  15. function validar(){
  16. var radios = document.getElementsByName('f_envio');
  17.     for (var i=0; i < document.form_prueba.f_envio.length; i++){
  18.         if (document.form_prueba.f_envio[i].checked){
  19.         var rad_val = document.form_prueba.f_envio[i].value;
  20.             if(rad_val == "CORREO"){
  21.                 if(document.form_prueba.e_direccion.value == ""){
  22.                 alert('Debes completar el campo correo');
  23.                 return false;
  24.                 }
  25.             }
  26.             if(rad_val == "EMAIL"){
  27.                 if(document.form_prueba.e_email.value == ""){
  28.                 alert('Debes completar el campo email');
  29.                 return false;
  30.                 }
  31.             }
  32.         }
  33.     }
  34. }
  35.  
  36. </script>
  37. </head>
  38. <form name="form_prueba" onsubmit="return validar();">
  39. <input name="f_envio" type="radio" value="CORREO" class="texto" onClick="habilita()" /> Por correo ordinario. <strong>Dirección</strong>
  40. <input name="e_direccion" type="text" class="texto" id="e_direccion" size="25" maxlength="25" disabled />
  41. <input name="f_envio" type="radio" value="EMAIL" class="texto"  onClick="habilita2()" /> Por correo electrónico. <strong>Email</strong>
  42. <input name="e_email" type="text" class="texto" id="e_email" size="25" maxlength="25" disabled />
  43. <input type="submit" />
  44. </form>
  45. </body>
  46. </html>

Observaciones, en tu código sobran los condicionales y el checked
Te falta un input text para email
Ahora tendrías que averiguar como hacerle un trim a los campos de texto y desde ya, cualquier validación que hagas solo con javascript sin hacerla también en el server, es completamente ineficaz

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: boton, formulario, html, input, radio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:44.