Entonces, ¿cómo puedo permitir que un usuario seleccione solo una casilla de verificación?
Sé que los botones de radio son "ideales", pero para mi propósito ... no lo es.
Tengo un campo en el que los usuarios deben seleccionar cualquiera de las dos opciones, pero no ambas. El problema es que necesito que mis usuarios también puedan deseleccionar su opción, y aquí es donde fallan los botones de opción porque una vez que selecciona el grupo, tiene que elegir una opción.
Validaré la información a través de php, pero todavía me gustaría restringir a los usuarios a una respuesta si quieren darla.
Respuestas:
Este fragmento hará lo siguiente:
fuente
.radio
sería útil usar el selector. Gracias por señalarlo :)Debería vincular un
change()
controlador para que el evento se active cuando cambie el estado de una casilla de verificación. Luego, simplemente anule la selección de todas las casillas de verificación, aparte de la que activó el controlador:Aquí hay un violín
En cuanto a la agrupación, si su casilla de verificación "grupos" eran todos hermanos:
Podrías hacer esto:
Aquí hay otro violín
Si sus casillas de verificación están agrupadas por otro atributo, como
name
:Podrías hacer esto:
Aquí hay otro violín
fuente
Los botones de radio son ideales. Solo necesita una tercera opción "ninguno" que está seleccionada de forma predeterminada.
fuente
Ya hay algunas respuestas a esto basadas en JS puro, pero ninguna de ellas es tan concisa como me gustaría que fueran.
Aquí está mi solución basada en el uso de etiquetas de nombre (como con botones de radio) y algunas líneas de javascript.
fuente
Esto debería funcionar para cualquier número de casillas de verificación en el formulario. Si tiene otros que no son parte del grupo, configure los selectores para las entradas aplicables.
fuente
Aquí hay una solución simple de HTML y JavaScript que prefiero:
// función js para permitir solo marcar una casilla de verificación de un día de la semana a la vez:
fuente
Que este código te ayude.
Enlace de trabajo Haga clic aquí
fuente
A partir de la respuesta de billyonecan , puede usar el siguiente código si necesita ese fragmento para más de una casilla de verificación (suponiendo que tengan nombres diferentes).
fuente
Si bien JS es probablemente el camino a seguir, podría hacerse solo con HTML y CSS.
Aquí tienes un botón de radio falso que es realmente una etiqueta para un botón de radio oculto real. Al hacer eso, obtienes exactamente el efecto que necesitas.
Véalo aquí: https://jsfiddle.net/tn70yxL8/2/
Ahora, eso supone que necesita etiquetas no seleccionables.
Si estaba dispuesto a incluir las etiquetas, técnicamente puede evitar repetir la etiqueta "desmarcar" cambiando su texto en CSS, consulte aquí: https://jsfiddle.net/7tdb6quy/2/
fuente
Ejemplo con AngularJs
fuente
Con javascript antiguo simple.
fuente
fuente
Si alguien necesita una solución sin bibliotecas externas de JavaScript, puede usar este ejemplo. Un grupo de casillas de verificación que permiten valores 0..1. Puede hacer clic en el componente de casilla de verificación o el texto de la etiqueta asociada.
fuente
Mi versión: uso de atributos de datos y JavaScript de Vanilla
fuente
Nigromancia:
y sin jQuery, para una estructura de casilla de verificación como esta:
lo harías así:
fuente
fuente