Foros del Web » Creando para Internet » HTML »

Duda sobre controles select

Estas en el tema de Duda sobre controles select en el foro de HTML en Foros del Web. Buenos días, Estoy trabajando con un formulario en el cual tengo algunos select que deseo controlar dependiendo de no si se elige algo en otro, ...
  #1 (permalink)  
Antiguo 24/11/2011, 08:52
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 8
Duda sobre controles select

Buenos días,

Estoy trabajando con un formulario en el cual tengo algunos select que deseo controlar dependiendo de no si se elige algo en otro, es decir que yo tengo un select con las opciones para licenciaturas y otro select para opciones sobre posgrado y deseo que sólo se pueda enviar una opción y que no sea posible mandar el formulario con un valor de cada select, sino únicamente uno.

(para las licenciaturas estoy usando AJAX de segundo nivel porque se debe elejir una carrera como primera opción y otra como segunda opción ya que son 7 licenciaturas) las cuales estan en una tabla de la base de datos, en el caso de los posgrados no se necesita AJAX porque sólo son dos posgrados (una maestria y un doctorado).

Entonces yo tengo el código siguiente:

Código HTML:
Ver original
  1. <tr>
  2.   <td colspan="2" style="border-bottom:hidden">
  3.     <p align="center"> <font color="#006699" size="3" face="Arial, Helvetica, sans-serif">Selecciona el nivel de estudios </font> </p>
  4.   </td>
  5. </tr>
  6.  
  7. <tr>
  8.   <td align="left" style="border-top:hidden">
  9.     <p><font color="#006699" size="3" face="Arial, Helvetica, sans-serif">Licenciatura:</font></p>
  10.     <p><font color="#006699" size="3" face="Arial, Helvetica, sans-serif"> Primera opción
  11.           <!-- A continuación se llama el método del AJAX -->
  12.             <?php generaCarreras(); ?>
  13.           </font></p>
  14.            
  15.     <p><font color="#006699" size="3" face="Arial, Helvetica, sans-serif">Segunda opción</font><font color="#006699" size="3" face="Arial, Helvetica, sans-serif">
  16.                 <select disabled="enabled" name="carrera2" id="carrera2" style="width:410px">
  17.                     <option value="0">Selecciona una opci&oacute;n...</option>
  18.                 </select>
  19.            </font></p>
  20.   </td>
  21.          
  22.   <td align="left" style="border-top:hidden">
  23.     <p><font color="#006699" size="3" face="Arial, Helvetica, sans-serif">Posgrado:</font></p>
  24.            
  25.     <select name="posgrados" style="width:auto">
  26.       <option>Selecciona una opci&oacute;n...</option>
  27.       <option>MAESTRIA EN .....</option>
  28.       <option>DOCTORADO EN ....</option>
  29.     </select>
  30.   </td>
  31. </tr>

Inicialmente los dos select tienen como valor por defecto Selecciona una opción

Entonces yo deseo que si selecciona una licenciatura, en el campo posgrado se quede el valor por defecto. Y si se selecciona un posgrado entonces que el campo Licenciatura se quede con el valor por defecto.

Hasta aquí no habria problema pero si después de que ya se selecciono una licenciatura, se selecciona un posgrado, ¿como hago para que el valor de licenciatura regrese a su valor por defecto? y del mismo modo si despues de seleccionar un posgrado se selecciona una licenciatura necesito que el campo posgrado regrese a su valor por defecto.

Espero haberme dado a entender.

Gracias.

Última edición por javier0730; 24/11/2011 a las 08:57
  #2 (permalink)  
Antiguo 24/11/2011, 09:19
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Duda sobre controles select

en el evento onchange de cada select con Javascript puedes obligar al otro a seleccionar determinada opción, el problema puede presentarse al generar eventos infinitos, podrías probar con el evento onBlur
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 24/11/2011, 10:29
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Duda sobre controles select

Gracias por tu pronta respuesta.

¿y que validación deberá llevar la función que es llamada por el evento?
se me ocurria que en la función comparará si el campo tiene un valor diferente de "Selecciona una opción" pero no comprendo como debo implementarlo para que la comparación se haga con respecto al valor que tiene el otro select y no el que mando llamar la función.
  #4 (permalink)  
Antiguo 24/11/2011, 12:51
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 187
Respuesta: Duda sobre controles select

Mira podes hacer lo siguiente (lo hice en jquery porque es mucho mas rapido):

http://jsfiddle.net/p4bl1t0/hVtPP/

Que los valores se recuperen o no por Ajax es indiferente.
Lo unico que tenes que asegurar es que ambos SELECT tengan una opcion "Seleccione una opcion" que cuyo valor podés definir vos.

Cualquier cosas no dudes en preguntarme.

Saludos
  #5 (permalink)  
Antiguo 24/11/2011, 13:43
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Duda sobre controles select

Gracias por el código.

me parece que no lo implemente correctamente porque no me funciono, lo que hice fue crear un archivo llamado jquery.js y en él coloque el código:

Código Javascript:
Ver original
  1. $('#lic').change(function(){
  2.     $this = $(this);//El SELECT de licenciaturas
  3.     if($this.val() !== '0'){ //Elegi alguna opcion valida
  4.         $('#posg').val('0');
  5.     }
  6. });
  7. $('#posg').change(function(){
  8.     $this = $(this);//El SELECT de licenciaturas
  9.     if($this.val() !== '0'){ //Elegi alguna opcion valida
  10.         $('#lic').val('0');
  11.     }
  12. });

posteriormente en el archivo html entre las etiquetas </head> puse esta linea para llamar el archivo:

Código HTML:
Ver original
  1. <script language="javascript" type="text/javascript" src="jquery.js"></script>

¿Será que no estoy llamando correctamente el archivo?

Gracias
  #6 (permalink)  
Antiguo 24/11/2011, 13:54
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 187
Respuesta: Duda sobre controles select

antes que nada: jquery es un framework de javascript, puedes bajartelo desde su página o usar un CDN, por ejemplo:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
por otro lado para poder implementarlo tal cual está deberías cambiar los id de los select
como podrás ver yo le puse id="lic" al de licenciados y id="prog" al de posgrados
  #7 (permalink)  
Antiguo 24/11/2011, 14:22
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Duda sobre controles select

si, de hecho para hacer la prueba lo hice en un archivo nuevo completamente en blanco (por los que los id que tienes deben de funcionar). Ya qaue quería estar seguro del funcionamiento antes de implementarlo en mi proyecto.

Además ya habia instalado el complemento jQuery_API.mxp y también he agregado la línea que comentas:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>

Pero no se estan ejecutando las funciones del archivo .js

Etiquetas: controles, php, select, tabla, formulario
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 10:26.