Ir para conteúdo
Rangel Ezln

Parar o alert, não deixar cadastrar depois de OK

Recommended Posts

Boa tarde,

Tenho um campo onde no js tenho uns códigos já pronto e no campo de txt eu só quero cadastrar os mesmos e se der erro o alert não deve continuar.

Ao clicar em OK do alert está cadastrando o código errado, e não é isso que eu quero.

Alguém pode me ajudar?

 

function verifica() {
  var chaves = ['abc123', 'de1234', 'aass12', '22sswa', 'abcd01'];
  var item = document.getElementById('nometxt').value;
  if (chaves.indexOf(item) > -1) {
    alert("Sucesso! Você cadastrou um novo código.");
  } else {
    alert("Código iválido, tente outro");
  }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Rangel Ezln Na teoria seu código está correto. Acredito que possa ser o valor do input que você não esteja capturando.

Eu pessoalmente faria algo assim:

var valor_do_input = 'xxxxxxx';

var a = ['aaa','bbb','ccc','ddd','eee'];
if(a.indexOf(valor_do_input) !== -1) {
  alert("O valor do input existe dentro da array");
}
else {
  alert("Não tem o valor " + valor_do_input + " dentro do array");
}

Sobre usar uma biblioteca externa. Jamais faça isso! A não ser que vá ter de utilizar vários recursos dela. Hoje em dia cada vez mais e mais sites estão fazendo da internet um lixo pelo uso dessa má prática de implementar um biblioteca para executar um simples coisa, pra que gerar X tantos kbs ou MB para executar uma função que você possa fazer um 5~6 linhas gerando menos de 10 bits?

 

Para mais detalhe array/indexOf:

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Omar~ disse:

@Rangel Ezln Na teoria seu código está correto. Acredito que possa ser o valor do input que você não esteja capturando.

Eu pessoalmente faria algo assim:


var valor_do_input = 'xxxxxxx';

var a = ['aaa','bbb','ccc','ddd','eee'];
if(a.indexOf(valor_do_input) !== -1) {
  alert("O valor do input existe dentro da array");
}
else {
  alert("Não tem o valor " + valor_do_input + " dentro do array");
}

Sobre usar uma biblioteca externa. Jamais faça isso! A não ser que vá ter de utilizar vários recursos dela. Hoje em dia cada vez mais e mais sites estão fazendo da internet um lixo pelo uso dessa má prática de implementar um biblioteca para executar um simples coisa, pra que gerar X tantos kbs ou MB para executar uma função que você possa fazer um 5~6 linhas gerando menos de 10 bits?

 

Para mais detalhe array/indexOf:

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

 

Eu concordo com sua opinião em partes, foi apenas uma sugestão e eu não disse sobre ter a obrigação de utilizar uma biblioteca para o caso de um trabalho pontual como o dele, porém caso ele possua um sistema e ele cresça o que é muito comum, ele vai naturalmente notar a necessidade de consistência pelo sistema e vai acabar notando que se faz necessário o uso. Imagina um site/empresa grande pensando, vamos 'reinventar a roda' para validação, inviável, não é? É a  situação que vai definir a necessidade dele e nada mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Rangel, você está chamando a função no onSubmit ?
Se não tente usá-la assim <form onSubmit="verifica()">
E na função ao dar erro coloca um return false

alert('Erro');
return false;

Acredito que isso possa ajudar. 
Outra ideia seria ao invés de usar um campo txt usar um select com options. A não ser que tenha muitas opções.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por MateusFreitas01
      Olá pessoal. Eu desenvolvi um formulário de contato, que envia os dados usando Ajax (direto para o e-mail). Porém, após enviar o formulário, se recarregar página, aparece a mensagem: 
      Tem como desabilitar isso (para qualquer computador)? Se não, acontece outro envio caso apertar em continuar?
       
      Obrigado. 
    • Por Snap: larisdumal
      Preciso de ajuda no seguinte exercício:
       
      Apresente um código javascript que solicite ao usuário, de uma unica vez, que informe uma sequência de médias finais de alunos na disciplina de Programação para a Internet, separadas por espaço. Exemplo: 9.0 8.5 5.5 7.0. A partir dos dados informados, apresente uma janela de alerta para CADA nota, anunciando se o aluno foi aprovado ou reprovado (partindo da ideia que a média é 6, sem arredondamento).
    • Por lucashenrique175
      Olá pessoal,
      Estou com um problema... Sou muito leigo em javascript e comecei a estudar tem pouco tempo.
      Estava querendo substituir os alerts por uma janela modal mais bonita. Consegui achar um código na internet que auxilia muito nisso. Peguei ele e estou tentando aplicar no meu script.
      Nesse código ao ser clicado em um link ou um botão, ele pega a class ou id dos mesmos e abre a janela, sendo uma janela simples de alerta ou uma janela de confirmação só que estilizadas.
      No meu código estou tentando validar os dados enviados do formulário e, caso o campo não for preenchido, ao invés de mostrar o convencional alert, estou tentando implementar essa janela modal.
       
      Eu até consegui fazer que ela apareça caso o campo não esteja preenchido. O problema é que tenho que se dou um clique nada acontece, mas quando dou o segundo clique ela aparece normalmente, dai em diante ela funciona normalmente, mas se atualizo a pagina tenho que dar dois cliques para que funcione.
      E se preencho o nome ela também aparece.
       
      Se alguém souber e poder me ajudar ficaria grato.
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <title>Alert - Testes</title> <meta charset="UTF-8" /> <meta name="viewport" content="widht=device-widht, initial-scale=1"> <script src="m2br.dialog.pack.js"></script> <script src="m2br.dialog.js"></script> <link rel="stylesheet" type="text/css" href="m2br.dialog.css" /> </head> <body> <form action="" method="post" name="form" onsubmit="return Validar();"> <input type="text" name="nome"> <input type="submit" value="enviar" name="enviar" class='enviar'> </form> <script> function Validar(){ var nome = form.nome.value; if (nome == "") { $('.enviar').m2brDialog({ tipo : 'erro', largura : 300, altura : 100, titulo : 'Alerta!', texto : '<h3>Erro ao enviar os dados</h3> <div class="text">Por favor, preencha o campo nome!</div>' }); return false; } }; </script> </body> </html>  
    • Por leonardo de andrade baessa
      Olá amigos, Estou Criando um formulário para cadastrar pedidos.
      Então criei tudo ok, envio recebo os pedidos cadastrados mas ainda assim quero substituir o Alerts
      que são colocados caso haja falha ou sucesso, por modal

      no meu caso ta assim :
      Para erros:
      if(empty($de)){echo"<script>window.location='cadastro.php';alert('Nome em branco!');</script>";} elseif(empty($contact_name)){echo"<script>window.location='cadastro.php';alert('Bairro em Branco!');</script>";} elseif(empty($ende)){echo"<script>window.location='cadastro.php';alert('Endereço em Branco!');</script>";} elseif(empty($numero)){echo"<script>window.location='cadastro.php';alert('Telefone em Branco!');</script>";} else Para Sucesso:
      echo"<script>window.location='cadastro.php';alert('Cadastrado com Sucesso!');</script>"; Todos Funcionam com o Alert no Navegador.
      Daí o que eu quero é colocar o modal
      Caso Erro.
      //error $('a#error').click(function(){ modal({ type : 'error', title : 'Ops!', text : 'Preencha Todos os Campos Corretamente por favor!', }); }); Caso Sucesso.
      $('a#custom2').click(function(){ modal( { ...... Como eu Chamaria eles Dentro das Echo?
      Existe alguma forma possivel?
    • Por Hisoka.
      Bom dia galera,
      Ai vai uma dúvida bem bobinha rs.
      Seguinte, eu n qr usar o alert do js na minha aplicação, qria usar um bootbox ou uma div q exibisse uma mensagem de sucesso ou erro p usuário. O porém é q n to sabendo fz isso, qndo chamo o alert do bootbox, ele n aparece.
      O trecho do código atual esta assim:
      if(mysqli_query($con, $sql)){ echo "<script>alert('salvo com sucesso!'); location.href='consultar-usuario.php?nome=%'</script>"; }else{ echo "<script>alert('Erro ao salvar!'); location.href='consultar-usuario.php?nome=%'</script>"; } Se possivel vcs m ajudarem com a função js que terei q chamar a div ou o bootbox ficarei grato.
      OBS: com o alert funciona d boa.





×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.