Quiero tener un menú desplegable con un conjunto de valores, pero también permitir que el usuario "seleccione" un nuevo valor que no aparece allí.
Veo que select2 admite esto si lo está usando en tags
modo, pero ¿hay alguna manera de hacerlo sin usar etiquetas?
jquery-select2
johnjohn
fuente
fuente
Respuestas:
Para la versión 4+, verifique esta respuesta a continuación por Kevin Brown
En Select2 3.5.2 y versiones posteriores, puede usar algo como:
(tomado de una respuesta en la lista de correo select2, pero no puedo encontrar el enlace ahora)
fuente
selectOnBlur: true
voluntad hará el trabajo, consulte: stackoverflow.com/questions/25616520/…tags: []
junto concreateSearchChoice
.La excelente respuesta proporcionada por @fmpwizard funciona para Select2 3.5.2 y posteriores, pero no funcionará en 4.0.0 .
Desde muy temprano (pero tal vez no tan temprano como esta pregunta), Select2 ha admitido "etiquetado": donde los usuarios pueden agregar su propio valor si se lo permite. Esto se puede habilitar a través de la
tags
opción, y puede jugar con un ejemplo en la documentación .Por defecto, esto creará una opción que tiene el mismo texto que el término de búsqueda que han ingresado. Puede modificar el objeto que se utiliza si desea marcarlo de una manera especial, o crear el objeto de forma remota una vez que se selecciona.
Además de servir como un indicador fácil de detectar en el objeto pasado a través del
select2:select
evento, la propiedad adicional también le permite representar la opción de manera ligeramente diferente en el resultado. Entonces, si desea señalar visualmente el hecho de que es una nueva opción al poner " (nuevo) " al lado, puede hacer algo como esto.fuente
Solo por mantener vivo el código, estoy publicando el código de @rrauenza Fiddle de su comentario .
HTML
jQuery
fuente
Dado que muchas de estas respuestas no funcionan en 4.0+, si está utilizando ajax, puede hacer que el servidor agregue el nuevo valor como una opción. Entonces funcionaría así:
[{"text":" my NEW option)","id":"0"}]
fuente
Hay una mejor solución, creo que ahora
¿simplemente establece el etiquetado como verdadero en las opciones seleccionadas?
de https://select2.org/tagging
fuente
Mejora en la respuesta de @fmpwizard:
fuente
Me encontré con esto de Kevin Brown. https://stackoverflow.com/a/30019966/112680
Todo lo que tienes que hacer
v4.0.6
es usar eltags: true
parámetro.fuente
En la mayoría de los casos, necesitamos comparar valores con un registro insensible. Y este código devolverá falso, lo que conducirá a la creación de registros duplicados en la base de datos. Además, String.prototype.localeCompare () no es compatible con el navegador Safary y este código no funcionará en este navegador;
reemplazará mejor a
fuente
Gracias por la ayuda chicos, usé el siguiente código dentro de Codeigniter II estoy usando la versión: 3.5.2 de select2.
fuente