Pour ce genre de chose, ce que je ferais :
1.
Penser aux gens chez qui le JavaScript est désactivé.
En clair, comence par construire un formulaire "normal", qui envoit sur ta page de traitement, qui elle va se charger de faire les vérifications.
2. Au niveau du JS, comme dit Mazarini la fonction que tu appelles par le onsubmit doit retourner False s'il y a une erreur.
Le principe du JS : onSubmit => action à effectuer au moment où on valide le formulaire. La "vraie" validation ne se fait pas si le JS renvoie False.
3. Ne pas utiliser
window.location.href, qui redirige vers une page avant de valider le formulaire !
En pratique, avec ton script (celui de base), quand on valide le formulaire on appelle le JS.
Le JS vérifie que la case est cochée, et SI elle est cochée redirige vers le lien indiqué.
Changement de page => le formulaire n'est pas envoyé.
Au final, un JS basique (il n'y a pas de balise JS ? ) :
function validateCheckBox(){
var conditions = document.getElementById('acceptConditions').checked;
if (conditions==false) {
alert("Merci de cocher la case si vous acceptez les conditions !" );
}
return conditions;
}
Le bouton :
<input name="submit" type="submit" id="submit" name="envoi" value="Passer à l'Etape 2" onclick="return validateCheckBox();" />
Si la case n'est pas cochée, le JS renvoie FALSE et le submit est annulé...