Hola:
Deberías dejar los corchetes vacíos para que pudiese funcionar... si tienes interés en dejar los valores que pones entre los corchetes la respuesta sería un poco más complejo... recorrer todos los elementos del formulario, rescatando solo los que sean checkboxes y que la primera parte del nombre coincidiera hasta el corchete de apertura...
for (var i = 0, total = f.elements.length; i < total; i ++)
if (f.elements[i].name.substr(0, 7) == "campos[" && f.elements[i].type = "checkbox")
valida = (valida || f.elements[i].checked)
...
Ya nos dirás...
Saludos