1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Desabilitar o botão salvar ao ser clicado

Bom dia, estou com um problema de duplicações de cadastro, pelo motivo de que quando cai a internet e o botão salvar é clicado, ele fica numa fila de espera para ser enviado ao banco, se a pessoa não sabe que está sem internet ela clica mais uma vez e esse cadastro é adicionado mais uma vez à fila de espera. Ao voltar a internet os dois cadastros sao enviados no mesmo segundo, impossibilitando a verificação de existencia no banco de dados. Para resolver/amenizar este problema preciso que ao clicar uma vez no botão ele se torne inativo (existente, mas impossibilitado de ser clicado uma segunda vez). Sei que existe uma classe do Bootstrap que deixa ele em status "clicado" mas não sei como aplicar no código, alguém sabe como fazer, pode me ajudar?


<button 
   class="btn btn-success" 
   type="submit" 
   id="btnSalvar" 
   onClick="document.body.onbeforeunload='confClose(event,1);'" //esta verificação impede que feche a página se existe alteração no cadastro //
   style="<?php 
              if(($_SESSION ['user'] ['atribuicao'] == 4) && !isset($formPesq)){ 
                 echo 'display: none;';
               }?>"> Salvar </button>
  • Você pode fazer isso com js

    Giovane   22 de jan de 2015
  • Na minha opinião, não seria o ideal deixar essa verificação no back end ao em vez de ser no front? Desabilitar o botão é uma solução, concordo, mas imagina se amanhã você precisa modificar essa pagina e esquece que o botão precisa dessa trava ou de repente você cria outra página que realiza o mesmo cadastro e nela não lembra de travar o botão. Na minha opinião se deve procurar uma forma de impedir ou consultar se já foi inserido antes de processar a próxima inserção.

    Marcelo Vasconcelos   22 de jan de 2015
  • Marcelo, eu ja faço a verificação se existe no banco antes de excluir, mas pra isso é necessário internet, ao cair a internet o cadastro continua na página para que o usuario nao precise digitar tudo de novo, portanto se ele clica mais de uma vez os registros são "empurrados" todos de uma vez pro banco, por isso não há como verificar no banco se ja existe... o botão foi a única solução que pensei...

    Dayane Lustosa   22 de jan de 2015
  • Mas sim, isso me preocupa um pouco, pois não é totalmente seguro, mas não encontrei outra alternativa... se descobrir algo, pode avisar aqui que eu vou verificar. Obrigada

    Dayane Lustosa   22 de jan de 2015
  • Você tem controle sobre o funcionamento da fila ou isso você não pode mexer?

    Giovane   22 de jan de 2015
Mostrar todos os 6 comentários>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags php html mysql javascript get frameworks busca ou faça a sua própria pergunta.