Solución:
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 SOLO se active el evento de cambio select2
$('select').val('1').trigger('change.select2');
Vea este jsfiddle para ver 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 selección:
$('#my-best-friend').select2();
Ahora selecciono manualmente Bob en el navegador. Luego Bob hace algo travieso y ya no me agrada. Entonces el sistema anula la selección de Bob por 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 de Select 2 (consulte Métodos obsoletos y eliminados) que pueden ser útiles para otros:
.select2 (‘val’)
El método “val” ha quedado obsoleto y se eliminará en Select2 4.1. El método obsoleto 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 (“cambiar”) en el elemento.
$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');
Al mirar los documentos de select2, usa los siguientes para obtener / establecer el valor.
$("#select").select2("val"); //get the value
$("#select").select2("val", "CA"); //set the value
@PanPipes ha señalado que esto ha cambiado para 4.x (ve y dale un voto a favor a continuación). val
ahora se llama directamente
$("#select").val("CA");
Así que dentro del loadComplete
de jqGrid puede obtener cualquier valor que esté buscando y luego establecer el valor de la casilla de selección.
Aviso de los documentos
Tenga en cuenta que para usar este método debe definir la función initSelection en las opciones para que Select2 sepa cómo transformar la identificación del objeto que pasa en val () al objeto completo que necesita para representar la selección. Si está adjuntando a un elemento seleccionado, esta función ya se le proporciona.
this.$("#yourSelector").select2("data", { id: 1, text: "Some Text" });
esto debería ser de ayuda.