HTML - Função JS não é executada no onsubmit do Form

Boa tarde prezados!

Vejo que é uma dúvida comum, já olhei vários tópicos sobre esse assunto, porém, infelizmente, nenhum me ajudou.
Tenho uma função javascript para validar campos de um formulário antes de gravar no banco de dados, contudo, aparentemente, a função não é chamada, pois os campos são gravados no banco, sem as devidas validações.

Código html:

<article class="modal-content cadastro">
    <div id="cadastro" class="modal-body">
      <h1 class="titulos">CADASTRO</h1>
      <form action="php_login.php" method="POST" name="FormCadastroUser" onsubmit="return validacao()">
        <label class="rodapeForm">Campos marcado com * são de preenchimento obrigatório</label>
        <div class="form-group row">
          <label class="col-sm-2 col-form-label">Nome<span class="corVermelha">*</span></label>
          <div class="col-sm-10">
            <input name="nome" type="text" class="form-control" id="nome" placeholder="Nome completo">
          </div>
        </div>
        <div class="form-group row">
          <label class="col-sm-2 col-form-label">Data de nascimento</label>
          <div class="col-sm-10">
            <input name="dataNascimento" type="date" class="form-control" id="dataNascimento">
          </div>
        </div>
        <div class="form-group row">
          <label class="col-sm-2 col-form-label">Endereço</label>
          <div class="col-sm-10">
            <input name="endereco" type="text" class="form-control" id="endereco" placeholder="Informe seu endereço completo">
          </div>
        </div>
        <div class="form-group row">
          <label class="col-sm-2 col-form-label">Celular<span class="corVermelha">*</span></label>
          <div class="col-sm-10">
            <input name="contact" type="tel" class="form-control" id="contact" onkeypress="$(this).mask('(00) 00000-0000')" placeholder="(00) 00000-0000">
          </div>
        </div>
        <div class="form-group row">
          <label class="col-sm-2 col-form-label">E-mail<span class="corVermelha">*</span></label>
          <div class="col-sm-10">
            <input name="email" type="email" class="form-control" id="email" placeholder="Informe seu e-mail">
          </div>
        </div>
        <div class="form-group row">
          <label class="col-sm-2 col-form-label">CPF<span class="corVermelha">*</span></label>
          <div class="col-sm-10">
            <input name="cpf" type="text" class="form-control" id="cpf" onkeypress="$(this).mask('000.000.000-00')" placeholder="000.000.000-00">
          </div>
        </div>
        <div class="form-group row">
          <label class="col-sm-2 col-form-label">Senha<span class="corVermelha">*</span></label>
          <div class="col-sm-10">
            <input name="senha1" type="password" class="form-control" id="senha1" placeholder="Senha com no mínimo 6 dígitos">
          </div>
        </div>
        <div class="form-group row">
          <label class="col-sm-2 col-form-label">Repetir senha<span class="corVermelha">*</span></label>
          <div class="col-sm-10">
            <input name="senha2" type="password" class="form-control" id="senha2" placeholder="Confirme sua senha">
          </div>
        </div>
        <div class="modal-footer">
          <input type="submit" name="cadastrar" id="cadastrar" value="Cadastrar" class="btn btn-primary">
        </div>
      </form>
    </div>
</article>
<script src="Scripts.js"></script>
</body>

JavaScript:

function validacao(){
var nome = document.FormCadastroUser.nome.value;
var contato = document.FormCadastroUser.contact.value;
var email = document.FormCadastroUser.email.value;
var cpf = document.FormCadastroUser.cpf.value;
var senha1 = document.FormCadastroUser.senha1.value;
var senha2 = document.FormCadastroUser.senha2.value;
//===============Validacao CPF========================
cpf = cpf.replace(/\./g, '');
cpf = cpf.replace('-', '');
cpf = cpf.split('');
var v1 = 0;
var v2 = 0;
var aux = false;
for (var i = 1; cpf.length > i; i++) {
	if (cpf[i - 1] != cpf[i]) {
	aux = true;   
	}
} 
if (aux == false) {
	alert('CPF inválido');
	return false; 
} 
for (var a = 0, p = 10; (cpf.length - 2) > a; a++, p--) {
	v1 += cpf[a] * p; 
} 
v1 = ((v1 * 10) % 11);
if (v1 == 10) {
	v1 = 0; 
}
if (v1 != cpf[9]) {
	alert('CPF inválido');
	return false; 
} 
for (var b = 0, d = 11; (cpf.length - 1) > b; b++, d--) {
	v2 += cpf[b] * d; 
} 
v2 = ((v2 * 10) % 11);
if (v2 == 10) {
	v2 = 0; 
}
if (v2 != cpf[10]) {
	alert('CPF inválido');
	return false; 
}
//==============Validação demais campos===============
var erro = false; //Não tem erro
if(nome == "") {
	alert('O campo Nome é de preenchimento obrigatório');
	FormCadastroUser.nome.focus();
	erro = true;
}else if(nome.indexOf(" ") == -1) {
	alert('Informe seu nome completo');
	FormCadastroUser.nome.focus();
	erro = true;
}else if(contato == ""){
	alert('O campo Celular é de preenchimento obrigatório');
	FormCadastroUser.contact.focus();
	erro = true;
}else if(contato.length <= 14){
	alert('Celular inválido');
	FormCadastroUser.contact.focus();
	erro = true;
}else if(email == ""){
	alert('O Campo E-mail é de preenchimento obrigatório');
	FormCadastroUser.email.focus();
	erro = true;
}else if(email.indexOf(".") == -1){
	alert('E-mail inválido');
	FormCadastroUser.email.focus();
	erro = true;
}else if(senha1 == "" || senha1.length <= 5) {
	alert('O campo senha deve conter no mínimo 6 caracteres');
	FormCadastroUser.senha1.focus();
	erro = true;
}else if(senha1 != senha2){
	alert('As senhas não conferem, verifique ');
	FormCadastroUser.senha2.focus();
	erro = true;
}
if(erro){
	return false;
}else{
	return true;
}

}

Ao invés de onclick no botao, usa o evento onsubmit no form.

https://www.w3schools.com/js/js_validation.asp

Lembrando que javascript no browser é código de brinquedo, o usuário pode burlar e conseguir salvar sem validação. Portanto faça validações no backend PHP.

O “onclick” foi apenas uma tentativa desesperada de fazer funcionar (vou atualizar aqui). A questão é que o onsubmit não funciona de jeito nenhum. Não sei mais o que fazer, li e reli umas mil vezes

No exemplo do link que passei mostra como se faz e funciona. Ao clicar o post do form nao é submetido.

https://www.w3schools.com/js/tryit.asp?filename=tryjs_validation_js

Como falei, nada vai adiantar perder tempo com isso, pode ser facilmente burlado, pois javascript no browser é código de brinquedo.

Posso validar no PHP sem problemas, mas estou aprendendo ainda e gostaria de saber qual o meu erro. Até onde estou vendo está igual ao link que enviasse. Não encontro o erro