Para la versión select2> = 4.0.0
Es posible que las otras soluciones no funcionen, sin embargo, los siguientes ejemplos deberían funcionar.
Solución 1: hace que se activen todos los eventos de cambio adjuntos, incluido select2
$('select').val('1').trigger('change');
Solución 2: hace que el evento de cambio SOLO select2 se active
$('select').val('1').trigger('change.select2');
Ver este jsfiddle para ejemplos de estos. Gracias a @minlare por la Solución 2.
Explicación:
Digamos que tengo un mejor amigo seleccionado con los nombres de las personas. Entonces, Bob, Bill y John (en este ejemplo, supongo que el valor es el mismo que el nombre). Primero inicializo select2 en mi select:
$('#my-best-friend').select2();
Ahora selecciono manualmente Bob en el navegador. Luego Bob hace algo malo y ya no me gusta. Entonces el sistema anula la selección de Bob para mí:
$('#my-best-friend').val('').trigger('change');
O digamos que hago que el sistema seleccione el siguiente en la lista en lugar de Bob:
// I have assume you can write code to select the next guy in the list
$('#my-best-friend').val('Bill').trigger('change');
Notas sobre el sitio web Select 2 (ver Métodos obsoletos y eliminados ) que pueden ser útiles para otros:
.select2 ('val')
El método "val" ha quedado en desuso y se eliminará en Select2 4.1. El método en desuso ya no incluye el parámetro triggerChange.
En su lugar, debe llamar directamente a .val en el elemento subyacente. Si necesita el segundo parámetro (triggerChange), también debe llamar a .trigger ("change") en el elemento.
$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');
change
evento (como recargar el formulario). De lo contrario, esas acciones se llamarían de forma redundante al activarsechange()
.onChange
)Mirando los documentos select2 , usa los siguientes para obtener / establecer el valor.
@PanPipes ha señalado que esto ha cambiado para 4.x (ve a darle un voto a favor a continuación).
val
ahora se llama directamente$("#select").val("CA");
Entonces, dentro
loadComplete
de jqGrid, puede obtener el valor que esté buscando y luego establecer el valor del cuadro de selección.Aviso de los documentos
fuente
val
llamada.<select>
convirtió alselect2
control probando la existencia de la claseselect2-offscreen
en el<select>
. Todos los elementos de la barra de herramientas de búsqueda tienen una identificación que comienza con elgs_
prefijo y tienen el nombre como encolModel
. Puedes usargetGridParam
para obtenercolModel
.select2
selección. Voy a echar otro vistazo hoy, tal vez con ojos frescos puedo arreglarlo. Gracias de nuevo. Actualización: envolver el código en un cheque booleano solucionó el problema que tenía, aunque dejó de actualizar la barra de búsqueda en lugar de seleccionar nuevamente el elemento anterior.Esto debería ser de ayuda.
fuente
Esto debería ser aún más fácil.
Pero asegúrese de que los valores que pasa ya estén presentes en el HTMl
fuente
Si desea agregar nuevos
value='newValue'
ytext='newLabel'
, debe agregar este código:Agregar nueva opción a
<select>
:Activar el
<select>
cambio al valor seleccionado:fuente
Solo quería agregar una segunda respuesta. Si ya ha procesado el select como select2 , deberá reflejarlo en su selector de la siguiente manera:
fuente
Tiene dos opciones: como dice @PanPipes answer, puede hacer lo siguiente.
Esta es una solución aceptable solo si uno no tiene acciones personalizadas vinculadas al evento de cambio. La solución que uso en esta situación es desencadenar un evento específico select2 que actualiza la selección mostrada select2.
fuente
Tener algunos problemas para configurar una opción de cadena seleccionada en select2:
Con la opción: "opción cadena1 / opción" utilizada:
PERO con una opción con un valor: valor de la opción "E" string1 / option:
Espera que esto ayude a alguien que lucha con el mismo problema.
fuente
si desea seleccionar un solo valor, use
$('#select').val(1).change()
si desea seleccionar varios valores, establezca el valor en la matriz para que pueda usar este código
$('#select').val([1,2,3]).change()
fuente
Para V4 Select2 si desea cambiar tanto el valor de select2 como la representación de texto del menú desplegable.
Esto establecerá no solo el valor detrás de escena, sino también la visualización de texto para select2.
Extraído de https://select2.github.io/announcements-4.0.html#removed-methods
fuente
Mi código esperado:
funcionando perfectamente gracias a @PanPipes por la útil.
fuente
hacer esto
fuente
si tiene una fuente de datos ajax, consulte esto para errores gratis
https://select2.org/programmatic-control/add-select-clear-items
// Configurar el control Select2
// Obtener el elemento preseleccionado y agregarlo al control
fuente
Si desea establecer un elemento seleccionado cuando conoce el texto de la lista desplegable y no conoce el valor, aquí hay un ejemplo:
Supongamos que descubrió una zona horaria y desea establecerla, pero los valores tienen
time_zone_id
en ellos.fuente
Fuente: Seleccione 2 documentación
fuente
simplemente puede usar el método get / set para establecer el valor
o puedes hacer esto:
fuente