Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2014, 08:13
Nexus10
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 3 meses
Puntos: 58
Deshabilitar opciones de un Select

Hola tod@s.

Estoy intentando hacer una cosa con un formulario. Pensaba que lo había resuelto pero he encontrado un error y no sé solucionarlo, entre otras cosas proque no tengo ni idea de jQuery.
El código (simplificado) que tengo es el siguiente:

Código HTML:
<div id="radio">
   <label>Tipo: </label>	  	  
   <input type="radio" name="tipo" value="comunidades" checked />Comunidad
   <input type="radio" name="tipo" value="provincias" />Provincia
</div>

<div id="comunidades" class="desc">
   <select name="comunidad" size="10">
      <option value='61'>Andalucía</option>
      <option value='62'>Aragón</option>
      <option value='63'>Asturias</option>
      .......	  	  	
   </select>
</div>

<div id="provincias" class="desc">
   <select name="provincia" size="10">
      <optgroup label='Andalucía'>
        <option value='6104'>Almería</option>
        <option value='6111'>Cádiz</option>             
        .......
      </optgroup>
      <optgroup label='Aragón'>
         <option value='6222'>Huesca</option>
         <option value='6244'>Teruel</option>
         ........             
      </optgroup>
      .......
   </select>
</div> 
Lo que quiero hacer es mostrar solo un campo select según el botón radio seleccionado. Buscando por internet encontré un script de jQuery que conseguí modificarlo para que sirviera para lo que quería hacer. Es el siguiente:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.   $(document).ready(function() {       
  3.     $("input[name$='tipo']").click(function() {
  4.       var test = $(this).val();
  5.       $("div.desc").hide();
  6.       $("#" + test).show();
  7.     });
  8.   });
  9. </script>

También hay que usar un poco de css para mostrar al principio solo el select del radio que tiene el atributo "checked".

Esto aparentemente me funcionaba bien, pero he encontrado un error que no sé resolver. La cosa es que si se selecciona una opción de un select y luego se cambia al otro select y se selecciona otra opción, al enviar el formulario se envían las opciones de los dos select, y esto no es lo que quiero hacer.
Yo quiero que sólo se envíe la opción del select que está visible en el momento de enviar el formulario. Así que supongo que además de ocultar el select cuando se pulsa el radio habrá que anular la opción que estuviera seleccionada.

A ver si alguien me puede ayudar con esto, seguro que será algo sencillo.

Gracias. Un saludo.