Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: CWeeD en 10 Febrero 2011, 22:01 pm



Título: Eliminar valores(option) iguales entre combobox
Publicado por: CWeeD en 10 Febrero 2011, 22:01 pm
Tengo dos combobox con 5 opciones iguales cada uno pues son comparativas, necesito que si elijo "option 1" en el combo1, se elimine "option 1" en el combo2:
Código:

<select name="combo1" id="combo1">
    <option value="a" selected class="select">1</option>
    <option value="b" selected class="select">2</option>
    <option value="c" selected class="select">3</option>
    <option value="d" selected class="select">4</option>
    <option value="e" selected class="select">5</option>
    </select>
<select name="combo2" id="combo2">
    <option value="a" selected class="select">1</option>
    <option value="b" selected class="select">2</option>
    <option value="c" selected class="select">3</option>
    <option value="d" selected class="select">4</option>
    <option value="e" selected class="select">5</option>
    </select>

Osea si escojo la opcion 1 se me deshabilite la opcion 1 en el otro combo, o que se elimine...gracias de antemano


Título: Re: Eliminar valores(option) iguales entre combobox
Publicado por: Nakp en 11 Febrero 2011, 02:14 am
hay dos formas, la forma obstrusiva es agregar el evento onChange a cada select en el html (sucio, pero funciona) y lanzar una funcion, la otra es registrar los eventos de cada select... y para esta hay 2 formas xD usar jquery o hacerlo a la brava con esto, si te decides por la ultima te recomiendo leas esto (http://www.onlinetools.org/articles/unobtrusivejavascript/chapter4.html)

como quieras :P lo unico que debes comprobar es cual cambian (combo1 o combo2) llamemosles ob1 y ob2 (los creas con document.getElementById('id del objeto') )

y luego deshabilitas en uno el que se selecciono en el otro xD para eso hay tambien 2 formas :P eliminando del DOM o agregando disabled='disabled' a la opcion que eligio en objeto contrario (espero me entiendas x'D prefiero explicar que pegar un codigo)

pondre la de jQuery y deshabilitando (no eliminando) que seria el mas facil x'D no tengo tiempo :¬¬ ademas me encanta jQuery xD

Código
  1. $('combo1').change(function(){
  2.    $('combo2').children('select[value='+this.value+']').remove();
  3. });

o algo asi xD pruebalo que lo escribi en el aire jajajaja ojala se te ilumine el foco para hacer algo mas generico en base a esto :P