Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marina limeira

Garantir o não envio de 2 vezes o mesmo formulario.. Como?

Recommended Posts

ao apertar o botao enviar de um formulario, muita gente devido a conexao fica apertando varias vezes..

Evitando duplicidades de dados.

 

pensei uma maneira de resolver, assim que apertar uma vez o botao enviar ele fica desabilitado, e com o texto "Aguarde..."

 

Mas como eu faria isso ?

 

Daria certo ?

 

O que voce fez que ja funcionou e esta usando a um bom tempo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre que você pensar em algo que tenha uma resposta rápida para o cliente sem precisar recarregar a página novamente, você precisará utilizar Javascript.

 

 

 

 

Movido de ASP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript / DHTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim daria certo sim...

 

qdo você clicar no botao - evento onclick ou onsubmit a primeira coisa é desabilitar. Para isso use a função disabled setando para true.

Depois altere o value do botão para o texto que você quer que fique, no caso, "aguarde".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andreia

faço sempre as pesquisas antes, porem muitos estao incompletos e por exemplo:

inibe o botao ENVIAR porem nao envia os dados.. ai nao adianta né

 

o unico que funcionou foi fazendo assim:

 

<FORM name=form01 action=mail.asp method=post onSubmit="enviar.disabled=true;">

 

manda o formulario e inibe o botao ENVIAR http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

agora como fazer com que alem de inibir apareça a palavra "ESPERE...." ??

 

Penso em fazer:

<FORM name=form01 action=mail.asp method=post onSubmit="processa();">

 

e o codigo javascript antes tem:

 

CODE
<script language="javascript">

function processa()

{

enviar.disabled=true;

enviar.text="ESPERE....";

}

</script>

o que faltaria ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta um pouco de estudo sobre DOM...

 

De uma pesquisada sobre isso... caso tenha dificuldades em encontrar algo, basta pesquisar sobre "document.getElementById"...

 

Ai você da um id pro seu botão, e quando for clicado você o desabilita e troca o texto dele...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ate testei document.getElementById porem me falaram que é mais simples usar este recurso que funcionou..

 

sei pouco sobre javascript por isso que peço ajuda amigos :rolleyes:

 

neste meu caso como faria para trocar o texto do botao?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Utilizar o DOM é MUITO mais simples do que a forma que você qr..

2) O bloco de JS q você postou está completamente incorreto...

 

Só vou dar UMA dica....

<script>
function Troca()
{
if(document.getElementById("botao").value == "Enviar")
{
document.getElementById("botao").value = "Aguarde..."
}
else
{
document.getElementById("botao").value = "Enviar"
}
}
</script>

<input type = "button" value = "Enviar" id = "botao" onClick="Troca()">

 

O resto é com você...

 

Abraços....

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi dark...

 

tenho tentado usar o que você fala

mas no primeiro ja deu erro de script e nao funcionou... e este

que você enviou por ultimo..

 

tambem nao deu certo

 

deu erro de script e nem ficou inativo nem mudou o texto...

 

o que faço ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha.. esse script funciona no FF e no IE.. sem nenhum erro...

 

Testou esse script do jeito que eu postei ou você adaptou ao seu caso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Impossivel dar erro com esse sript....

 

Se você só copiou e colou ele.. te digo com 100% de certeza que ele nao da erro...

 

Posta o código que você copiou... ou que você testou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz exatamente como disse

<script language=JavaScript>

function Troca()

{

if(document.getElementById("botao").value == "Enviar")

{

document.getElementById("botao").value = "Aguarde..."

}

else

{

document.getElementById("botao").value = "Enviar"

}

}

</SCRIPT>

e no botao: <input type="submit" name="" value="ENVIAR" id = "botao" onclick="troca()">

 

e nada de funcionar.. nem fica desabilitado como no onsubmit...

 

sera que nao tem outra forma?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Javascript é Case Sensitivity.... logo a função está com t maiusculo e na linha do botão está com t minusculo....

 

Ou seja... você NAO copiou corretamente o exemplo que te passei...

 

Preste um pouco mais de atenção antes de dizer que algo nao funciona...

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo.. valeu a bronca...

 

mas nao deu certo.. preciso que o formulario nao seja enviado 2 vezes se apertar 2 vezes no botao..

 

entao tentei

CODE
<script language=JavaScript>

function troca()

{

if(document.getElementById("botao").value == "ENVIAR")

{

 

document.getElementById("botao").value = "AGUARDE...";

document.getElementById("botao").disabled = true;

 

}

else

{

document.getElementById("botao").value = "ENVIAR"

}

}

</SCRIPT>

 

Porem,

o botao fica desabilitado e o formulario nao processa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se fica desabilitado já é um começo....

 

Então agora o problema é q ele nao envia... certo ???

 

Poste o código da tag form e do botão q está fazendo o envio...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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