Pregunta Establecer la opción de selección 'seleccionado', por valor


tengo un select campo con algunas opciones en él. Ahora necesito seleccionar uno de esos options con jQuery. Pero ¿cómo puedo hacer eso cuando solo conozco el value del option que debe ser seleccionado?

Tengo el siguiente HTML:

<div class="id_100">
  <select>
    <option value="val1">Val 1</option>
    <option value="val2">Val 2</option>
    <option value="val3">Val 3</option>
  </select>
</div>

Necesito seleccionar la opción con valor val2. ¿Cómo puede hacerse esto?

Aquí hay una página de demostración: http://jsfiddle.net/9Stxb/


704
2017-11-12 12:16


origen


Respuestas:


Hay una manera más fácil que no requiere que ingrese a la etiqueta de opciones:

$("div.id_100 select").val("val2");

Mira esto método jQuery.


1154
2018-06-07 08:49



Para seleccionar una opción con el valor 'val2':

$('.id_100 option[value=val2]').attr('selected','selected');

312
2017-11-12 12:17



Utilizar el change() evento después de seleccionar el valor. De los documentos:

Si el campo pierde el foco sin que el contenido haya cambiado, el evento no se desencadena. Para activar el evento manualmente, aplique .change() sin argumentos:

$("#select_id").val("val2").change();

Más información está en .cambio().


191
2017-10-21 06:22



Deseleccione todos primero y filtre las opciones seleccionables:

$('.id_100 option')
     .removeAttr('selected')
     .filter('[value=val1]')
         .attr('selected', true)

42
2017-11-12 12:20



<select name="contribution_status_id" id="contribution_status_id" class="form-select">
    <option value="1">Completed</option>
    <option value="2">Pending</option>
    <option value="3">Cancelled</option>
    <option value="4">Failed</option>
    <option value="5">In Progress</option>
    <option value="6">Overdue</option>
    <option value="7">Refunded</option>

Configuración en estado pendiente por valor

   $('#contribution_status_id').val("2");

36
2017-12-05 17:27



Para mí, el siguiente hizo el trabajo

$("div.id_100").val("val2").change();

30
2017-07-27 13:27



Creo que la forma más fácil es seleccionar val (), pero puede verificar lo siguiente. Ver ¿Cómo manejar la etiqueta de selección y opción en jQuery? para más detalles sobre las opciones.

$('div.id_100  option[value="val2"]').prop("selected", true);

$('id_100').val('val2');

No optimizado, pero la siguiente lógica también es útil en algunos casos.

$('.id_100 option').each(function() {
    if($(this).val() == 'val2') {
        $(this).prop("selected", true);
    }
});

23
2017-09-07 22:40



Puede seleccionar cualquier atributo y su valor utilizando el selector de atributos [attributename=optionalvalue], entonces en su caso puede seleccionar la opción y establecer el atributo seleccionado.

$("div.id_100 > select > option[value=" + value + "]").prop("selected",true);

Dónde value es el valor que desea seleccionar

Si necesita eliminar los valores seleccionados previamente, como sería el caso si esto se usa varias veces, tendría que cambiarlo ligeramente para eliminar primero el atributo seleccionado.

$("div.id_100 option:selected").prop("selected",false);
$("div.id_100 option[value=" + value + "]")
        .prop("selected",true);

15
2017-11-12 12:22



La forma más fácil de hacerlo es:

HTML

<select name="dept">
   <option value="">Which department does this doctor belong to?</option>
   <option value="1">Orthopaedics</option>
   <option value="2">Pathology</option>
   <option value="3">ENT</option>
</select>

jQuery

$('select[name="dept"]').val('3');

Salida: Esto se activará ENT.


11
2017-12-02 07:23