Um problema muito comum em alguns sistemas é chamado de “submit múltiplo”, é quando aquele usuário apressadinho clica 5x no [enviar] achando que vai tornar tudo mais rápido e, dependendo do sistema, isso causa um desastre.
Criei um pedacinho de código pequeno porém muito do útil que ajuda a evitar esse mal da seguinte forma: assim que o formulário é enviado ele desabilita todos os campos e botões de submit, fazendo com que não seja possível alterar os dados ou enviar o formulário novamente.
É só incluir essas linhas no seu site:
2 | $("form").submit(function() { |
4 | $("input", this).attr("readonly", true); |
6 | $("input[type='submit'],input[type='image']", this).attr("disabled",true); |
Mas há um probleminha com esse código: se você usar algum tipo de validação por JavaScript (também ativado pelo submit do formulário) o codigo não vai funcinar caso o usuário tenha digitado algo que invalide o formulário.
Uma solução seria chamar essa função de validação dentro desse código jQuery, da seguinte forma:
02 | $("form").submit(function() { |
03 | if (minhaFuncao() == true) { |
05 | $("input", this).attr("readonly", true); |
07 | $("input[type='submit'],input[type='image']",this).attr("disabled", true); |
Com isso nós iremos bloquear o próximo submit apenas quando os dados forem validados.