2009-03-14 11 views

Respuesta

259

Esto da como resultado true si ya existe:

$("#yourSelect option[value='yourValue']").length > 0; 
+5

La actualización a 1.6 Jquery +, encierre entre comillas yourValue – Bob

+1

Yep. Las citas son muy importantes. – bobetko

+2

Funciona para mí en jquery 1.7.1 sin adjuntar su valor entre comillas –

18
if ($("#your_select_id option[value=<enter_value_here>]").length == 0){ 
    alert("option doesn't exist!"); 
} 
+2

te falta un corchete de cierre "opción [value = ]" –

2

no funciona, tienes que hacer esto:

if ($("#your_select_id option[value='enter_value_here']").length == 0){ 
    alert("option doesn't exist!"); 
} 
15

Otra forma usando jQuery:

var exists = false; 
$('#yourSelect option').each(function(){ 
    if (this.value == yourValue) { 
    exists = true; 
    } 
}); 
+6

-1 Básicamente, estás haciendo el bucle por ti mismo en lugar de dejar que jQuery lo haga como todas las otras respuestas. Aunque esto funcionaría, está reinventando la rueda. – Peter

+12

no estoy seguro de que sea -1 digno. esto muestra explícitamente el proceso, que puede ser bueno para los principiantes. Ciertamente no es la mejor respuesta, pero es válida. – roberthuttinger

+1

Y algunos me gusta el enfoque manual, como yo. Esto también combina el paso de agregar el booleano allí, en lugar de producir el 0 o 1 como hace el otro y tener que convertirlo. Digo que ambos enfoques están bien porque tienes que hacer 2 pasos, de cualquier manera. Esto me parece más visible para el proceso y menos propenso a errores al no juzgar la longitud del espacio en blanco, por ejemplo, como lo haría '.length'. – vapcguy

12
var exists = $("#yourSelect option") 
       .filter(function (i, o) { return o.value === yourValue; }) 
       .length > 0; 

Esto tiene la ventaja de escaparse automáticamente del valor para usted, lo que hace que las citas aleatorias en el texto sean mucho más fáciles de tratar.

0

Es ayúdame:

var key = 'Hallo'; 

    if ($("#chosen_b option[value='"+key+"']").length == 0){ 
    alert("option not exist!"); 

    $('#chosen_b').append("<option value='"+key+"'>"+key+"</option>"); 
    $('#chosen_b').val(key); 
    $('#chosen_b').trigger("chosen:updated"); 
         } 
    }); 
Cuestiones relacionadas