Sé que la función "solo lectura" no existe para select2. Compruebe aquí. ¿Cómo lo logro? Cualquier ayuda sería apreciada. Gracias. Nota: No puedo usar deshabilitado. Si uso deshabilitado, no obtendré la lista del valor seleccionado.

3
Rajesh Samui 27 feb. 2018 a las 14:05

5 respuestas

La mejor respuesta

Supongo que ese problema está resuelto o puede estar disponible para una versión superior, ya que esto funcionó para mí.

Siga el ejemplo para hacer un select2 de solo lectura aquí: Seleccione 2

En código js:

$("select").select2("readonly", true);

Puedes poner tu propia CSS como:

.select2-container.select2-container-disabled .select2-choice {
  background-color: #ddd;
  border-color: #a8a8a8;
}
4
Manisha 29 nov. 2018 a las 12:01
$('.js-example-basic-single').select2({
  disabled: true
});

Renderice un atributo deshabilitado una vez que la página se haya resuelto.

Un recordatorio, un campo con el atributo deshabilitado no se envía en los formularios

3
Victor Matuk 16 ago. 2018 a las 22:39

Prueba esto:

$('select option:selected').attr('disabled','disabled');

EDITAR :

Para aquellos que usan Select 2 versión 4+, la nueva forma de hacerlo debería ser:

$("select").prop("disabled", true); // instead of $("select").enable(false);

Después de aclarar la pregunta, esta es la forma correcta de hacerlo:

$('select').select2().enable(false);
0
Rashed Hasan 28 nov. 2019 a las 13:39

Como dice la pregunta: ¿Cómo hacer select2 readonly? , y como el usuario señaló: la función "readonly" no existe para select2 . Según los desarrolladores del equipo select2: lea esto.

Solo quiero agregar un par de cosas:

  • deshabilitado no es lo mismo que readonly! ten cuidado.
  • $(element).select2({ disabled: true }); solo funciona en versiones anteriores a V4. De hecho, la respuesta marcada como correcta se refiere a V3.

Dicho esto, quiero compartir una sugerencia simple:

  • destruir el elemento y hacerlo de solo lectura. $(element).select2('destroy').attr("readonly", true)
  • si lo necesita disponible nuevamente, siempre puede llamarlo nuevamente. $(element).select2()

Propina:

  • si desea que se parezca al elemento anterior, simplemente elimine el estilo CSS predeterminado: $(element).select2('destroy').attr("readonly", true).css({'-moz-appearance': 'none','-webkit-appearance': 'none'});
0
Absolutkarlos 7 may. 2020 a las 15:26

Inicialice seleccione 2 con la opción deshabilitada establecida en verdadero .

$('.js-example-basic-single').select2({
  disabled: true
});
-1
Andrew Schultz 27 feb. 2018 a las 11:11