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
}