Primero de todo, yo haría el botón por JS y no por HTML, es decir, que sea input.button (no input.submit) el que llama a la función en vez del submit del formulario.
Creo que lo que ocurre es que no estás mirando el checked en los hijos del elemento sino en el propio elemento, que no tiene esa propiedad. Prueba con esto:
Código:
todosActivos = [];
for (i = 0; elem = formulario.elements[i]; i++) {
todosActivos [i]= false;
if (elem.type == "radio") {
cantidadRadios = elem.length;
for (j=0; j < cantidadRadios ; j++) {
if (elem[j].checked==true) {
todosActivos[i]=true;
}
}
}
}
if (todosActivos.indexOf(false)== -1) {
document.forms['formulario'].submit();
} else {
//CASOS DE ERROR
}