Foros del Web » Creando para Internet » HTML »

[SOLUCIONADO] Duda con select

Estas en el tema de Duda con select en el foro de HTML en Foros del Web. Hola amigos quiero saber si se puede hacer esto: que cunado le den click a otro salga un cuadro de texto para escribir la otra ...
  #1 (permalink)  
Antiguo 17/04/2013, 13:58
 
Fecha de Ingreso: febrero-2013
Ubicación: Bogota
Mensajes: 40
Antigüedad: 11 años, 2 meses
Puntos: 0
Duda con select

Hola amigos quiero saber si se puede hacer esto: que cunado le den click a otro salga un cuadro de texto para escribir la otra opción.

Código HTML:
 <td><select name = "estu" class="sampletext">
        <option value="">--Select --</option>
		<option value="Tecnico">Tecnico</option>
		<option value="Tecnologico">Tecnologo</option>
        <option value="Universitario">Universitario</option>
		<option value="Especialista">Posgrado</option>
        <option value="Maestria">Maestria</option>
        <option value="Doctorado">Doctorado</option>
        <option value="Otros"></option>
        </select></td>

Muchas Gracias.
  #2 (permalink)  
Antiguo 17/04/2013, 19:19
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: Duda con select

Claro que se puede

A tu select le debes poner el evento onchange y ponerle el manejador del evento

Esta funcion que se ejecuta cuando se lanza el evento onchange debe comprobar el valor del option seleccionado y si se selecciono otros que aparesca el cuadro de dialogo

Para acceder al valor del option debes usar

document.getElementById("id_del_select").options[indice_del_option].firstChild.data

Para que aparezca el cuadro de dialogo usa prompt();

Para agregar nuevos elementos option debes crearlos con el objeto option
new option

Como esos nuevos elementos option van ir antes del option que contiene el valor otros, debes agregar los nuevos option con insertBefore

Salu2
  #3 (permalink)  
Antiguo 18/04/2013, 10:10
 
Fecha de Ingreso: febrero-2013
Ubicación: Bogota
Mensajes: 40
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Duda con select

Quiero algo asi pero con select y no con radio buton, sera que se puede cambiar.

Código HTML:
<html> 
	<head> 
	<script type="text/javascript">
	function mostrarReferencia(){
	if (document.fcontacto.Conocido[1].checked == true) {
	document.getElementById('desdeotro').style.display='block';
	}
	else {
	document.getElementById('desdeotro').style.display='none';
	}
	}
	</script>
	</head> 
 <body>

<form name="fcontacto">

<p>A través de donde nos has conocido:<br />

<input type="radio" name="Conocido"  onclick="mostrarReferencia();" /> Google
<input type="radio" name="Conocido"  onclick="mostrarReferencia();" /> Otros
</p>


<div id="desdeotro" style="display:none;">
<p>Referencia de la oferta:</p>
<p><input type="text" name="otro" class="input" /></p>
</div>
</body>
</html> 
  #4 (permalink)  
Antiguo 18/04/2013, 13:16
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Duda con select

Lo que propone @hackjose no lo entiendo

Ahora que si lo que querés es un campo de texto para poner el valor de otros, requiere de varias modificaciones para hacerlo desde un select, por lo pronto no usar el name para recuperar el valor ya que los option no conforman un array[]

Sería algo asi

Código:
<!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Html5</title>
<script type="text/javascript">
function mostrarReferencia(){
var valor = document.getElementById('Conocido');
	if(valor.value != ""){
		if(valor.value != 'otros'){
		document.getElementById('desdeotro').style.display='none';
		}else {
		document.getElementById('desdeotro').style.display='block';
		}
	}else{
	document.getElementById('desdeotro').style.display='none';
	}
}
	</script>
	</head> 
 <body>

<form name="fcontacto">

<p>A través de donde nos has conocido:<br />
<select name="Conocido" id="Conocido" onchange="mostrarReferencia();">
<option value="">Seleccionar</option>
<option value="google">Google</option>
<option value="otros">Otros</option>
</select>
</p>
<div id="desdeotro" style="display:none;">
<p>Referencia de la oferta:</p>
<p><input type="text" name="otro" class="input" /></p>
</div>
</form>
</body>
</html>
eso si, deberás validar todo después

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 18/04/2013, 13:41
 
Fecha de Ingreso: febrero-2013
Ubicación: Bogota
Mensajes: 40
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Duda con select

Ok funciona, muchas gracias ya con esto puedo seguir con mi trabajo.
Pero me surgio una duda;
Cuando se escoge la opcion otro y se despliega el cuadro para escribir al guardar en la base de datos va a cambiar el valor con el que se envía la variable cierto?, o el que se envía es esto? <form name="fcontacto"> y sigue siendo igual?

Gracias.
  #6 (permalink)  
Antiguo 18/04/2013, 13:56
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Duda con select

Cita:
Iniciado por jairx_x1 Ver Mensaje
Ok funciona, muchas gracias ya con esto puedo seguir con mi trabajo.
Pero me surgio una duda;
Cuando se escoge la opcion otro y se despliega el cuadro para escribir al guardar en la base de datos va a cambiar el valor con el que se envía la variable cierto?, o el que se envía es esto? <form name="fcontacto"> y sigue siendo igual?

Gracias.
lo que se envía son los name de cada elemento del formulario, ya sea por get(valor x defecto), o por post
Es decir recibirías
Conocidos (el name del select)
otros (el name del campo de texto, en realidad este lo vas a recibir siempre, porque aunque esté oculto lo envía). Esto me lleva a señalar otro detalle que no tuvimos en cuenta, supongamos que selecciona otros, llena el campo, pero despues corrije y selecciona goolge, vas a tener los dos valores, lo correcto sería al mismo tiempo que se oculta el campo. darle un value vacío, entonces quedaría

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Html5</title>
  5. <script type="text/javascript">
  6. function mostrarReferencia(){
  7. var valor = document.getElementById('Conocido');
  8.     if(valor.value != ""){
  9.         if(valor.value != 'otros'){
  10.         document.getElementById('desdeotro').style.display='none';
  11.         }else {
  12.         document.getElementById('desdeotro').style.display='block';
  13.         document.getElementById('otro').value='';
  14.         }
  15.     }else{
  16.     document.getElementById('desdeotro').style.display='none';
  17.     document.getElementById('otro').value='';
  18.     }
  19. }
  20.     </script>
  21.     </head>
  22.  <body>
  23.  
  24. <form name="fcontacto">
  25.  
  26. <p>A través de donde nos has conocido:<br />
  27. <select name="Conocido" id="Conocido" onchange="mostrarReferencia();">
  28. <option value="">Seleccionar</option>
  29. <option value="google">Google</option>
  30. <option value="otros">Otros</option>
  31. </p>
  32. <div id="desdeotro" style="display:none;">
  33. <p>Referencia de la oferta:</p>
  34. <p><input type="text" name="otro" id="otro" class="input" /></p>
  35. </div>
  36. </form>
  37. </body>
  38. </html>

SAlu2
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 18/04/2013, 14:35
 
Fecha de Ingreso: febrero-2013
Ubicación: Bogota
Mensajes: 40
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Duda con select

Ok perfecto Funciona muy bien, Gracias emprear.
  #8 (permalink)  
Antiguo 20/04/2013, 23:55
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: Duda con select

Si usas librerías como Jquery, podrás hacer un montón de cosas y efectos , pero de una manear fácil y sencilla.

Etiquetas: select
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 03:30.