¿Cómo puedo comprobar si ya existe una opción en la selección de JQuery?

3 minutos de lectura

¿Cómo puedo comprobar si ya existe una opción en la selección de JQuery?
Porra

¿Cómo puedo comprobar si ya existe una opción en la selección de JQuery?

Quiero agregar dinámicamente opciones en la selección, por lo que necesito verificar si la opción ya existe para evitar la duplicación.

¿Cómo puedo comprobar si ya existe una opción en la selección de JQuery?
Tamas Czinege

Esto se evalúa como verdadero si ya existe:

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

  • Actualizando a Jquery 1.6 +, incluya yourValue entre comillas

    – Beto

    04 jul.

  • Sí. Las citas son muy importantes.

    – bobetko

    02 nov.

  • Funciona para mí en jquery 1.7.1 sin incluir yourValue entre comillas

    – Mathias F.

    11 ene.

  • ¿Cómo se puede implementar ignorar mayúsculas y minúsculas o toLowerCase en la solución anterior? ¿Esto requeriría un $.cada uno para la lista desplegable?

    – Ben Sewards

    03 ene.

  • si queremos implementar la coincidencia entre mayúsculas y minúsculas, ¿qué tenemos que hacer? usar la función simple $.each?

    –Chaudhry Waqas

    12 feb. 17 a las 20:18

Otra forma de usar jQuery:

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

  • -1 Básicamente, estás haciendo el ciclo tú mismo en lugar de dejar que jQuery lo haga como todas las otras respuestas. Aunque esto funcionaría, es reinventar la rueda.

    – Pedro

    04 abr.

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

    – roberthuttinger

    09 abr.

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

    – chico vapc

    04 dic.


  • Más uno para estos, tampoco necesita preocuparse por los caracteres en yourValue

    – FabioC.

    18 ene.


  • Esta y la respuesta de alnort29 son en realidad la mejor manera de verificar un valor existente, si no sabe qué es “yourValue” (por ejemplo, si es una entrada del usuario). Crear una sola cadena solo para permitir que “jQuery lo haga” requeriría que realice una desinfección de entrada, y terminará con prácticas de código que han perseguido a SQL durante décadas. Entonces, un -1 es completamente injustificado. La pregunta incluso establece que quieren insertar valores “dinámicamente”. No parche su cadena juntos dinámicamente. Tampoco haces ‘seleccionar 1 de los usuarios donde contraseña = “‘ + cadena + ‘”‘, ¿verdad?

    – Aaaa

    15 feb. 17 en 10:08


¿Cómo puedo comprobar si ya existe una opción en la selección de JQuery?
Seb

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

  • te falta un paréntesis de cierre “opción[value=<enter_value_here>]”

    – KB.

    03 jul.


¿Cómo puedo comprobar si ya existe una opción en la selección de JQuery?
alnorte29

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

Esto tiene la ventaja de escapar automáticamente el valor por usted, lo que hace que las comillas aleatorias en el texto sean mucho más fáciles de manejar.

Aunque la mayoría de las otras respuestas me funcionaron, usé .find():

if ($("#yourSelect").find('option[value="value"]').length === 0){
    ...
}

¿Cómo puedo comprobar si ya existe una opción en la selección de JQuery?
Benjamín

No funciona, tienes que hacer esto:

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

¿Cómo puedo comprobar si ya existe una opción en la selección de JQuery?
Sulung Nugroho

Me ayuda:

  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");
                         }
  });

.

¿Ha sido útil esta solución?