Jump to content
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");
  }
}

Share this post


Link to post
Share on other 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

 

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Nunes_
      alert('aaaaaaaaaaaaaasdasdasdasdasdasdasd')
      alert('aaaaaaaaaaaaaasdasdasdasdasdasdasd')

      Como faço para os dois textos ficarem em uma linha só?
    • By Paulo Oliveira Albuquerque
      Ola pessoa boa noite a todos estou tendo dois problemas ao enviar mensagem de um formulario para o email
      No Gmail por ex; aparecer uma mensagem assim:
       
       
      JAJAJA
      Spam x         Paulo<suportepaulo@gmail.com>
      22:43 (Há 3 minutos)     para eu   Cuidado com esta mensagem
      O Gmail não conseguiu confirmar se esta mensagem foi realmente enviada por suportepaulo@gmail.com. Não clique em links, não faça o download de anexos nem responda com informações pessoais.
      Denunciar phishing     inglês     português       Traduzir mensagem Desativar para: inglês       HFDSFSDFJSDFSJDFKSDFKSJDKFSD FSD FSDFSD FS DFSDFS  
        E eu quero que todas as mensagem que for enviar ela não ir para o span e sim para a pagina principal do GMAIL ou HOTMAIL etc...
       
      Meu codigo php esta assim
       
      <?php if(isset($_POST['envia'])) { // CONFIGURE ABAIXO if(empty($_POST['nome']) || empty($_POST['telefone']) || empty($_POST['email']) || empty($_POST['mensagem'])) { echo "Todos os campos são obrigatórios"; } else { $emailpara = "<?php echo $email; ?>"; // VOCÊ / QUEM RECEBE O EMAIL $nome_postador = $_POST['nome']; // NOME DO POSTADOR $telefone = $_POST['telefone']; // Telefone DO POSTADOR $email_postador = $_POST['email']; // E-MAIL DO POSTADOR $assunto = $_POST['assunto']; // ASSUNTO DO EMAIL $mensagem = $_POST['mensagem']; // MENSAGEM DO EMAIL // CONFIGURE ACIMA $headers = "MIME-Version: 1.0\n"; $headers.= "Content-type: text/html; charset=iso-8859-1\n"; $headers.= "From: ".$nome_postador." <".$email_postador.">"; if(mail($emailpara, $assunto, $telefone, $mensagem, $headers)) { echo "E-mail enviado com sucesso..."; } else { echo "Opss! Erro ao enviar seu e-mail"; } } } ?> Meu formulario de contato html esta assim
       
      <div class="sidebar-box-inner"> <form action="<?php echo ConfigPainel('site_url'); ?>/email.php" method="post" class="fast-contact-wrapper"> <div class="form-group form-group-sm"> <label>Nome Completo</label> <input type="text" name="nome" required class="form-control" /> </div> <div class="form-group form-group-sm"> <label>Telefone</label> <input type="phone" name="telefone" required class="form-control" /> </div> <div class="form-group form-group-sm"> <label>E-mail</label> <input type="email" name="email" required class="form-control" /> </div> <div class="form-group form-group-sm"> <label>Assunto</label> <input type="text" name="assunto" required class="form-control" /> </div> <div class="form-group form-group-sm"> <label>Mensagem</label> <textarea class="form-control" name="mensagem" rows="5" required></textarea> </div> <input class="btn btn-primary" type="submit" name="envia" value="Enviar" /> </form> </div>  
    • By 11closed
      Olá pessoal, não estou conseguindo identificar o erro na codificação. o codigo se trata de uma verificação de convites de amigos, onde não posso enviar convides para a mesma pessoa, os convites são enviados pelo ID dos usuarios
       
      vejam o codigo javascript
      <script type="text/javascript"> function verifica() { if (form.convida_amigo2.value != '' && form.convida_amigo3.value != '') { if (form.convida_amigo2.value == form.convida_amigo3.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 2 e o convite 3 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo2.value != '' && form.convida_amigo4.value != '') { if (form.convida_amigo2.value == form.convida_amigo4.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 2 e o convite 4 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo2.value != '' && form.convida_amigo5.value != '') { if (form.convida_amigo2.value == form.convida_amigo5.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 2 e o convite 5 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo2.value != '' && form.convida_amigo6.value != '') { if (form.convida_amigo2.value == form.convida_amigo6.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 2 e o convite 6 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo2.value != '' && form.convida_amigo7.value != '') { if (form.convida_amigo2.value == form.convida_amigo7.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 2 e o convite 7 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo3.value != '' && form.convida_amigo4.value != '') { if (form.convida_amigo3.value == form.convida_amigo4.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 3 e o convite 4 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo3.value != '' && form.convida_amigo5.value != '') { if (form.convida_amigo3.value == form.convida_amigo5.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 3 e o convite 5 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo3.value != '' && form.convida_amigo6.value != '') { if (form.convida_amigo3.value == form.convida_amigo6.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 3 e o convite 6 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo3.value != '' && form.convida_amigo7.value != '') { if (form.convida_amigo3.value == form.convida_amigo7.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 3 e o convite 7 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo4.value != '' && form.convida_amigo5.value != '') { if (form.convida_amigo4.value == form.convida_amigo5.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 4 e o convite 5 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo4.value != '' && form.convida_amigo6.value != '') { if (form.convida_amigo4.value == form.convida_amigo6.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 4 e o convite 6 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo4.value != '' && form.convida_amigo7.value != '') { if (form.convida_amigo4.value == form.convida_amigo7.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 4 e o convite 7 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo5.value != '' && form.convida_amigo6.value != '') { if (form.convida_amigo5.value == form.convida_amigo6.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 5 e o convite 6 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo5.value != '' && form.convida_amigo7.value != '') { if (form.convida_amigo5.value == form.convida_amigo7.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 5 e o convite 7 n\u00e3o podem ser iguais."); return false; } } if (form.convida_amigo6.value != '' && form.convida_amigo7.value != '') { if (form.convida_amigo6.value == form.convida_amigo7.value) { alert("ERRO: Envie apenas 1 convite por usu\u00e1rio(ID), o convite 6 e o convite 7 n\u00e3o podem ser iguais."); return false; } } } </script> E o html é bem simples
      <form id="form" name="form" method="post" action="criando.php"> <?php if($mais_participantes >= '2'){ ?> <label for="exampleInputEmail1">2 Convite: N&uacute;mero de Identifica&ccedil;&atilde;o do seu amigo(ID):</label> <i class="fa fa-user"></i> <input type="text" name="convida_amigo2" class="form-control" id="exampleInputEmail2" placeholder="N&uacute;mero de ID" onkeypress="return SomenteNumero(event);" /> <?php } if($mais_participantes >= '3'){ ?> <label for="exampleInputEmail1">3 Convite: N&uacute;mero de Identifica&ccedil;&atilde;o do seu amigo(ID):</label> <i class="fa fa-user"></i> <input type="text" name="convida_amigo3" class="form-control" id="exampleInputEmail3" placeholder="N&uacute;mero de ID" onkeypress="return SomenteNumero(event);" /> <?php } if($mais_participantes >= '4'){ ?> <label for="exampleInputEmail1">4 Convite: N&uacute;mero de Identifica&ccedil;&atilde;o do seu amigo(ID):</label> <i class="fa fa-user"></i> <input type="text" name="convida_amigo4" class="form-control" id="exampleInputEmail4" placeholder="N&uacute;mero de ID" onkeypress="return SomenteNumero(event);" /> <?php } if($mais_participantes >= '5'){ ?> <label for="exampleInputEmail1">5 Convite: N&uacute;mero de Identifica&ccedil;&atilde;o do seu amigo(ID):</label> <i class="fa fa-user"></i> <input type="text" name="convida_amigo5" class="form-control" id="exampleInputEmail5" placeholder="N&uacute;mero de ID" onkeypress="return SomenteNumero(event);" /> <?php } if($mais_participantes >= '6'){ ?> <label for="exampleInputEmail1">6 Convite: N&uacute;mero de Identifica&ccedil;&atilde;o do seu amigo(ID):</label> <i class="fa fa-user"></i> <input type="text" name="convida_amigo6" class="form-control" id="exampleInputEmail6" placeholder="N&uacute;mero de ID" onkeypress="return SomenteNumero(event);" /> <?php } if($mais_participantes >= '7'){ ?> <label for="exampleInputEmail1">7 Convite: N&uacute;mero de Identifica&ccedil;&atilde;o do seu amigo(ID):</label> <i class="fa fa-user"></i> <input type="text" name="convida_amigo7" class="form-control" id="exampleInputEmail7" placeholder="N&uacute;mero de ID" onkeypress="return SomenteNumero(event);" /> <?php } ?> <input type="submit" class="btn btn-primary btn-lg" Onclick="return verifica()" value="Criar Sala" /> </form>  
      O PROBLEMA É QUANDO EU COLOCO EXEMPLO:  
      CONVITE 2:  3
      CONVITE 3:  
      CONVITE 4:  
      CONVITE 5:  
      CONVITE 6:  10
      CONVITE 7:  10
       
      Era para dar o ERRO avisando que o convite 6 esta igual ao convite 7, mas ao inves de fazer isso está enviando os dados para outra pagina sem dar o erro, agora se eu retirar o 3 do convite 2, ai sim da o erro, o que estou fazendo de errado? alguem poderia me ajudar ?
    • By 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. 
    • By 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).
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.