Hola, tenemos la respuesta a lo que buscas, continúa leyendo y la verás un poco más abajo.
Solución:
Ejemplo de https://github.com/ffmike/jquery-validate
Lo mismo sin el campo “validar” en las etiquetas solo usando javascript:
$("#testform").validate(
rules:
"spam[]":
required: true,
minlength: 1
,
messages:
"spam[]": "Please select at least two types of spam."
);
Y si necesita nombres diferentes para las entradas, puede usar algo como esto:
JavaScript:
$("#testform").validate(
rules:
spam:
required: function (element)
var boxes = $('.checkbox');
if (boxes.filter(':checked').length == 0)
return true;
return false;
,
minlength: 1
,
messages:
spam: "Please select at least two types of spam."
);
Agregué una entrada oculta antes de las entradas y la configuré como “requerido” si no hay casillas de verificación seleccionadas
El complemento de validación solo validará el elemento actual/enfocado. Por lo tanto, deberá agregar una regla personalizada al validador para validar todas las casillas de verificación. Similar a la respuesta anterior.
$.validator.addMethod("roles", function(value, elem, param)
return $(".roles:checkbox:checked").length > 0;
,"You must select at least one!");
Y en el elemento:
Además, probablemente encontrará que la visualización del mensaje de error no es suficiente. Solo se resalta 1 casilla de verificación y solo se muestra 1 mensaje. Si hace clic en otra casilla de verificación separada, que luego devuelve un valor válido para la segunda casilla de verificación, la original aún se marca como no válida y el mensaje de error aún se muestra, a pesar de que el formulario es válido. Siempre he recurrido a mostrar y ocultar los errores yo mismo en este caso. El validador solo se ocupa de no enviar el formulario.
La otra opción que tiene es escribir una función que cambie el valor de una entrada oculta para que sea “válida” al hacer clic en una casilla de verificación y luego adjuntar la regla de validación al elemento oculto. Sin embargo, esto solo se validará en el evento onSubmit, pero mostrará y ocultará los mensajes en los momentos apropiados. Esas son las únicas opciones que puede usar con el complemento de validación.
¡Espero que ayude!
mmm primero tu id attributes debe ser único, es probable que su código sea
Para su problema:
if($('.roles:checkbox:checked').length == 0)
// no checkbox checked, do something...
else
// at least one checkbox checked...
PERO, recuerde que la validación de un formulario de JavaScript es solo indicativa, todas las validaciones DEBEN realizarse del lado del servidor.