JavaScript表单验证功能遇到的问题

问题描述 投票:0回答:1

似乎我的“验证”功能由于某种原因未激活。

我尝试使用onsubmitonclick,并尝试使用ID代替name

脚本已预加载到head

function validar() {
  var nome = formulario.nome.value;
  var email = formulario.email.value;
  var cpf = formulario.cpf.value;
  var telefone_fixo = formulario.telefone_fixoe.value;
  var telefone_celular = formulario.telefone_celular.value;
  var login = formulario.login.value;
  var senha = formulario.senha.value;
  var rep_senha = formulario.rep_senha.value;

  if (nome == "") {
    alert("Preencha o campo com seu NOME");
    formulario.nome.focus();
    return false;
  }
  if (nome.lenght < 5) {
    alert("Digite seu NOME COMPLETO");
    formulario.nome.focus();
    return false;
  }
  if (cpf.lenght < 11) {
    alert("Digite apenas os números do CPF");
    formulario.cpf.focus();
    return false;
  }
  if (telefone_fixo < 10) {
    alert("Digite apenas os números do TELEFONE");
    formulario.telefone_fixo.focus();
    return false;
  }
  if (telefone_celular < 11) {
    alert("Digite apenas os números do CELULAR");
    formulario.telefone_celular.focus();
    return false;
  }
  if (senha != rep_senha) {
    alert("SENHAS não são iguais");
    return false;
  }
}
<form id="formulario">
  <div>PREENCHA OS CAMPOS COM SEUS DADOS REAIS:</div><br/> Nome:

  <br/>
  <input type="text" id="nome" name="nome"><br/><br/> Email:
  <br/>
  <input type="text" id="email" name="email" placeholder="[email protected]"><br/><br/> CPF:
  <font size="1">(Digite apenas números)</font><br/>
  <!--Função de CSS invadindo o HTML provisoriamente-->
  <input type="text" id="cpf" name="cpf" placeholder="000.000.000-00"><br/><br/> Telefone:
  <font size="1">(Digite apenas números)</font><br/>
  <!--Função de CSS invadindo o HTML provisoriamente²-->
  <input type="text" id="telefone_fixo" name="telefone_fixo" placeholder="(00) 0000-0000"><br/><br/> Celular:
  <font size="1">(Digite apenas números)</font><br/>
  <!--Função de CSS invadindo o HTML provisoriamente³-->
  <input type="text" id="telefone_celular" name="telefone_celular" placeholder="(00) 00000-0000"><br/><br/><br/>

  <div>ESCOLHA SEU LOGIN E SUA SENHA:</div><br/> Login:

  <br/>
  <input type="text" id="login" name="login"><br/><br/> Senha:
  <br/>
  <input type="password" id="senha" name="senha"><br/><br/> Repetir Senha:<br/>
  <input type="password" id="rep_senha" name="rep_senha"><br/><br/><br/>

  <input type="submit" value="Enviar" onclick="return validar()">
  <input type="reset" value="Limpar" name="limpar">
</form>
javascript html forms validation submit
1个回答
0
投票
  • 拼写长度
  • 拼写错误的定影液
  • 电话号码缺少.length
  • 您需要附加到提交处理程序并在发生错误时使用preventDefault

function validar(e) {
  var formulario = this;
  var nome = formulario.nome.value;
  var email = formulario.email.value;
  var cpf = formulario.cpf.value;
  var telefone_fixo = formulario.telefone_fixo.value;
  var telefone_celular = formulario.telefone_celular.value;
  var login = formulario.login.value;
  var senha = formulario.senha.value;
  var rep_senha = formulario.rep_senha.value;
  var error = false

  if (nome == "") {
    alert("Preencha o campo com seu NOME");
    formulario.nome.focus();
    error = true;
  }
  if (!error && nome.lenght < 5) {
    alert("Digite seu NOME COMPLETO");
    formulario.nome.focus();
    error = true;
  }
  if (!error && cpf.length < 11) {
    alert("Digite apenas os números do CPF");
    formulario.cpf.focus();
    error = true;
  }
  if (!error && telefone_fixo.length < 10) {
    alert("Digite apenas os números do TELEFONE");
    formulario.telefone_fixo.focus();
    error = true;
  }
  if (!error && telefone_celular.length < 11) {
    alert("Digite apenas os números do CELULAR");
    formulario.telefone_celular.focus();
    error = true;
  }
  if (!error && senha != rep_senha) {
    alert("SENHAS não são iguais");
    error = true;
  }
  if (error) e.preventDefault();
}

window.addEventListener("load",function() {
  document.getElementById("formulario").addEventListener("submit",validar);
})
<form id="formulario">
  <div>PREENCHA OS CAMPOS COM SEUS DADOS REAIS:</div><br/> Nome:

  <br/>
  <input type="text" id="nome" name="nome"><br/><br/> Email:
  <br/>
  <input type="text" id="email" name="email" placeholder="[email protected]"><br/><br/> CPF:
  <font size="1">(Digite apenas números)</font><br/>
  <!--Função de CSS invadindo o HTML provisoriamente-->
  <input type="text" id="cpf" name="cpf" placeholder="000.000.000-00"><br/><br/> Telefone:
  <font size="1">(Digite apenas números)</font><br/>
  <!--Função de CSS invadindo o HTML provisoriamente²-->
  <input type="text" id="telefone_fixo" name="telefone_fixo" placeholder="(00) 0000-0000"><br/><br/> Celular:
  <font size="1">(Digite apenas números)</font><br/>
  <!--Função de CSS invadindo o HTML provisoriamente³-->
  <input type="text" id="telefone_celular" name="telefone_celular" placeholder="(00) 00000-0000"><br/><br/><br/>

  <div>ESCOLHA SEU LOGIN E SUA SENHA:</div><br/> Login:

  <br/>
  <input type="text" id="login" name="login"><br/><br/> Senha:
  <br/>
  <input type="password" id="senha" name="senha"><br/><br/> Repetir Senha:<br/>
  <input type="password" id="rep_senha" name="rep_senha"><br/><br/><br/>

  <input type="submit" value="Enviar">
  <input type="reset" value="Limpar" name="limpar">
</form>
© www.soinside.com 2019 - 2024. All rights reserved.