Inaktivera submit-knappen efter att formuläret har submit:ats?
Hej,
Jag undrar vilket det enklaste sättet är som man förhindrar dubbelpostning när man skickar iväg ett formulär? Råkade precis ut för det på min sida när jag skulle skicka ett PM.
20 svar · 654 visningar · startad av lillebror
Hej,
Jag undrar vilket det enklaste sättet är som man förhindrar dubbelpostning när man skickar iväg ett formulär? Råkade precis ut för det på min sida när jag skulle skicka ett PM.
Inaktivera submit-knappen efter att formuläret har submit:ats?
LeonL skrev:
Inaktivera submit-knappen efter att formuläret har submit:ats?
Dum fråga kanske...men hur gör man det?
Hej!
Du kan specificera att det måste gå en viss tid mellan varje PM. Om en person P skickar ett PM klockan 21:36:05 får denne inte skicka ett till samma person förrän, säg, 21:36:15. Du kan ju också jämföra innehållet i dessa PM. Är de olika kan du låta båda gå igenom; är mottagare och innehåll samma som föregående spärrar du det.
lillebror skrev:
Dum fråga kanske...men hur gör man det?
onsubmit="this.elements['namn_på_submitknapp'].disabled=true"
Får fortfarande dubbelposter om jag trycker väldigt fort på "skicka"-knappen. Då har alla samma tidsstämpel.
Denna kod använder jag:
<input type="submit" name="sendmessage" value="Skicka meddelande" onsubmit="this.elements['sendmessage'].disabled=true" />
Ska inte onsubmit:en ligga i <form>-taggen? :)
Ehh...jo...det är nog helt rätt....
Jag var för snabb helt enkelt :e
Nu verkar det fungera fint! :birp
Fortsätter i denna tråd då ämnet är identiskt.
Jag skulle lägga till denna kod i den php-fil där användaren skapar ny tråd. Då upptäckte jag att det redan fanns ett onSubmit-element i <form>-taggen. Går det att ha två?
<form action="newthread.php" method="post" name="newthread" onSubmit="return validateNewThread(this)" [B]onsubmit="this.elements['newthread'].disabled=true"[/B]>
Okey...as simple as that? :) det är alltså som när man skriver vanlig kod. Du kan ha hur många kodsatser som helst i onsubmit-elementet så länge du skiljer de åt med ";"? :OO
Japp! :) Blir det oläsligt kan det dock vara en bra idé att samla dem i en funktion.
Java/Javascript är riktigt användbart! Finns det inga nackdelar med det? Om en användare mot förmodan skulle ha stängt av det så fungerar väl ingenting?
Det hände dock en lustig sak när jag använde koden...
onsubmit="this.elements['newthread'].disabled=true; return validateNewThread(this)"
Nu hoppade den över kontrollen för om rubriken alternativt meddelandefältet var ifyllt med funktionen validateNewThread(this)? Vad beror det på? Ska man byta ordning på de eller? När jag tog bort this.elements['newthread'].disabled=true; så fungerade den tidigare nämnda funktionen som vanligt.
Om en användare stängt av JS fungerar "ingenting", ja. ;) Därför är det viktigt att inte förlita sig på den funktionalitet JS tillhandahåller. Jag kommer främst att tänka på validering av formulär där förfarandet måste implementeras även på serversidan.
När jag implementerar kontrollen på serversidan...gör jag det genom att jämföra tidsstämpel och innehåll i rubrik eller meddelandefält exempelvis?
Peter S skrev:
Om en användare stängt av JS fungerar "ingenting", ja. ;) Därför är det viktigt att inte förlita sig på den funktionalitet JS tillhandahåller. Jag kommer främst att tänka på validering av formulär där förfarandet måste implementeras även på serversidan.
iiiiiiiiiiiiiiiiiiiiii!!
Där dök det med ens upp en hel del jobb....
x(
Mvh
henrik
Ja, för att två meddelanden skall anses vara identiska måste samtliga fält vara lika. I det här fallet verkar rubrik, meddelandefält och mottagare vara tillräckliga.
devotion skrev:
Där dök det med ens upp en hel del jobb....
Man måste ju ha ett "idiotsäkert" system och tänka på databasintegriteten. Funkar ju inte med en massa dubbelpostningar hit och dit :e
Peter S skrev:
Ja, för att två meddelanden skall anses vara identiska måste samtliga fält vara lika. I det här fallet verkar rubrik, meddelandefält och mottagare vara tillräckliga.
Check! (y) Det blir nästa projekt att implementera det!
lillebror skrev:
Man måste ju ha ett "idiotsäkert" system och tänka på databasintegriteten. Funkar ju inte med en massa dubbelpostningar hit och dit :e
Check! (y)
Helt korrekt... (Y)
Mvh
henrik