values multiselect multiple change drop-down-menu jquery-selectors

drop-down-menu - multiple - multiselect function



Compruebe si el valor está en la lista de selección con JQuery (5)

¿Por qué no usar un filtro?

var thevalue = ''foo''; var exists = $(''#select-box option'').filter(function(){ return $(this).val() == thevalue; }).length;

Las comparaciones sueltas funcionan porque existe> 0 es verdadero, existe == 0 es falso, por lo que puede usar

if(exists){ // it is in the dropdown }

O combinarlo:

if($(''#select-box option'').filter(function(){ return $(this).val() == thevalue; }).length){ // found }

O donde cada lista desplegable de selección tiene la clase de cuadros de selección, esto le dará un objeto jquery de la (s) selección (es) que contienen el valor:

var matched = $(''.select-boxes option'').filter(function(){ return $(this).val() == thevalue; }).parent();

¿Cómo puedo, usando JQuery, verificar si un valor pertenece a la lista desplegable o no?


Aquí hay otra opción similar. En mi caso, estoy verificando valores en otro cuadro a medida que construyo una lista de selección. Seguía encontrando valores indefinidos cuando los comparaba, así que configuré mi cheque de esta manera:

if ( $("#select-box option[value=''" + thevalue + "'']").val() === undefined) { //do stuff }

No tengo idea si este enfoque es más caro.


En caso de que usted (u otra persona) podría estar interesado en hacerlo sin jQuery:

var exists = false; for(var i = 0, opts = document.getElementById(''select-box'').options; i < opts.length; ++i) if( opts[i].value === ''bar'' ) { exists = true; break; }


Use el selector de atributos iguales

var thevalue = ''foo''; var exists = 0 != $(''#select-box option[value=''+thevalue+'']'').length;

Si el valor de la opción se estableció a través de Javascript, eso no funcionará. En este caso, podemos hacer lo siguiente:

var exists = false; $(''#select-box option'').each(function(){ if (this.value == ''bar'') { exists = true; return false; } });


if(!$(''#select-box'').find("option:contains(''" + thevalue + "'')").length){ //do stuff }