webForumDet fria alternativet

stoppa många inlägg

5 svar · 458 visningar · startad av ampy

ampyMedlem sedan feb. 20011 498 inlägg
#1

Jag har en gästbok och när man ska posta inlägg så kan man hålla in Enter över inputknappen så att jättemånga inlägg postats, handlar om 100-tal x(

Jag tror att man kan lösa detta med Javascript och skrev därför i detta rum. Men kan man lösa så att bara ett inlägg postats?

rojMedlem sedan apr. 2002179 inlägg
#2

Lägg till en button.disabled=true när man trycker på knappen.
Och gör så att den blir enabled när man laddar sidan så kan man bara skicka en gång.. =)

ampyMedlem sedan feb. 20011 498 inlägg
#3

Fattar inte riktigt hur du menar, så här eller:

<INPUT type="submit" name="Submit" value="Skicka" id="submit" button.disabled=true>

och vart ska jag lägga disabled?

JojoxxMedlem sedan juni 20004 308 inlägg
#4

onClick="this.disabled=true;"

Men det funkar bara i nya webbläsare, och behöver inte betyda där heller att det inte går att submitta. Den kan hända att webbläsare skickar formuläret om du trycker [enter] i ett text-fält, även om IE väljer att inte göra det om submit-knappen är disabled.

En annan lösning;

<script language="JavaScript" type="text/javascript">submitted=false;</script>
<form onSubmit="if(submitted){alert('Skicka bara en gång'); return false;}else{submitted=true; return true;}" ...osv
ampyMedlem sedan feb. 20011 498 inlägg
#5

Har nu gjort så här:

<script language="JavaScript" type="text/javascript">submitted=false;</script>
	<form name="form" method="post" action="skicka.asp?vad=send" onsubmit="return check(this); if(submitted){alert('Skicka bara en gång'); return false;}else{submitted=true; return true;}">

Men man kan fortfarande skicka flera, har jag gjort fel eller?

JojoxxMedlem sedan juni 20004 308 inlägg
#6

Därför att formuläret skickas ifall du returnerar true från onSubmit, returnerar du false skickas det inte. I ditt fall returnerar du det som kommer från funktionen check(), det som står efteråt blir alltså betydelselöst. Snyggast vore att baka in "dubbel-skicks" kontrollen i funktionen check, men eftersom jag inte vet hur den ser ut kan du göra så här;

<script language="JavaScript" type="text/javascript">submitted=false;</script>
<form name="form" method="post" action="skicka.asp?vad=send" onsubmit="if(check(this)){ if(submitted){alert('Skicka bara en gång'); return false;}else{submitted=true; return true;}}else{ return false; }">
127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)