Avatar billede Søren Bech Morsing Praktikant
14. oktober 2002 - 08:26 Der er 18 kommentarer og
1 løsning

disable submit knap i 5 sekunder

Jeg søger en funktion der onClick disabler en submitknap, så folk ikke kan dobbeltklikke på mine formularer.

onClick="javascript.document.form.element.??? = disabled"

Og så noget med en timeout.
Avatar billede erikjacobsen Ekspert
14. oktober 2002 - 08:56 #1
Avatar billede Slettet bruger
14. oktober 2002 - 10:18 #2
<input type=submit value=send id='id01' onclick="id01.disabled=true">

Kan det bruges?
Kigger lige på en timeout!?
Avatar billede Slettet bruger
14. oktober 2002 - 10:37 #3
<input type=submit id="id01" onclick="id01.disabled=true;setTimeout('id01.disabled=false',3000);">

Går udfra at det er det du leder efter!
Avatar billede erikjacobsen Ekspert
14. oktober 2002 - 10:47 #4
Det er fint nok hvis det kun er en submit-knap - og browseren
understøtter disabled. Man kan også submitte ved at trykke retur
i et tekstfelt.
Avatar billede Søren Bech Morsing Praktikant
14. oktober 2002 - 11:44 #5
erikjacobsen: det kræver der er en submit knap, og hvis den er disabled så er den der vel ikke? men ellers må man jo lige lave noget onSubmit
onSubmit="return validateAddress(this);" og så lade den returnere false
Avatar billede Søren Bech Morsing Praktikant
14. oktober 2002 - 11:44 #6
mit problem har været at få folk der ser en indkøbskurv mange gange dobbeltklikker på "gå til betaling", og det er svært at dobbeltklikke på enter, men selvfølgelig kan man lige så godt tjecke for det.
Avatar billede Søren Bech Morsing Praktikant
14. oktober 2002 - 11:49 #7
Kan man "disable" <form action....>
Avatar billede Slettet bruger
14. oktober 2002 - 11:50 #8
En kombination ville være at disable submit knappen i fem sekunder og så sætte en spærrer på onSubmit samtidig!

Everything has a fix! :-)
Avatar billede Slettet bruger
14. oktober 2002 - 11:53 #9
Tror ikke du kan disable hele formen, men du kan disable alle elemterne i formen!
Avatar billede erikjacobsen Ekspert
14. oktober 2002 - 12:14 #10
Øh - spærring på onsubmit klarer vel alle tilfælde... ??
Avatar billede Søren Bech Morsing Praktikant
14. oktober 2002 - 12:16 #11
jeg ønsker dette efter man har klikket på submit knappen:

<form onsubmit="return false;" ...
Avatar billede Søren Bech Morsing Praktikant
14. oktober 2002 - 12:17 #12
men I kan lige svare begge 2, det ser ud til virker (pånær det erik skriver med at man kan klikke enter)
Avatar billede erikjacobsen Ekspert
14. oktober 2002 - 12:21 #13
det er sikkert rigtig nok - er der ingen submitknap,
eller er den disabled, så kan man ikke trykke enter og
submitte. Men gælder det nu også hvis der kun er ét
tekst-felt...?

Jeg ville nu løse det på serversiden. Tildel hver form
et unikt id (lang streng med md5), og ved indsættelse
i database checke for om den findes i forvejen. Sådan
ca. undgår eksperten.dk dobbelte indlæg  Prøv at kigge
i koden :)

Værdiløse points? Nej tak.
Avatar billede Slettet bruger
14. oktober 2002 - 12:27 #14
Well, hvis det bare er det kan man såmænd nøjes med at bruge et unixtimestamp som id når siden loades og sørge for at ingen rækker i tabellen er identiske!
Avatar billede erikjacobsen Ekspert
14. oktober 2002 - 12:31 #15
Der er principielt ikke godt nok - 2 brugere kan få samme unix
timestamp.
Avatar billede Slettet bruger
14. oktober 2002 - 12:34 #16
Ja men principielt er det ikke et problem i den givne situation! Da to brugere ikke kan dobbelt klikke i samme vindue!
Og fordi det ikke vil være et identisk indlæg hvis det er genereret af to forskellige brugere... forskellig!=identisk
Avatar billede Slettet bruger
14. oktober 2002 - 12:35 #17
sbk: håber følgende kan hjælpe dig!

<html>
<head>
</head>
<body>
<script language=javascript>
var blocker = true;

function disabler()//disabler submit knappen id01.
{
    document.forms.buy.id01.disabled=true;
    blocker = false;
    setTimeout('document.forms.buy.id01.disabled=false;blocker=true;',5000);
}
function submitblock()
{
    var rtvalue;
    if(blocker==false)
    {
        rtvalue=false;
    }
    else
    {
        disabler();
        rtvalue=true;
    }
    return rtvalue;
}
</script>
<form onSubmit="return submitblock();" name=buy>
<input type=text>
<br>
<input type=submit id="id01" onclick="disabler();if(blocker==false){alert('falsk');}";>
</form>
</body>
</html>
Avatar billede erikjacobsen Ekspert
14. oktober 2002 - 12:36 #18
Kombinerer du flere oplysninger end lige timestamp, så er det
selvfølgelig godt nok. Det er blot nemmmere at checke for eksistens
med én værdi i et unikt, indexeret felt. Men det var bare en idé - den
kan realiseres på mange måder.
Avatar billede Søren Bech Morsing Praktikant
28. oktober 2002 - 14:32 #19
min løsning blev onDblClick="java script:alert("Du skal ikke dobbeltklikke på mig")"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester