31. december 2004 - 15:04Der er
12 kommentarer og 1 løsning
Fjern focus fra form når den er submittet
Hej eksperter,
Hvordan fjerner jeg fucus fra en submit knap når den er submittet. Problemet er at jeg har en form som indeholder nogle værdier, hvis jeg trykker F5 bliver formen submittet igen og igen.
Som du ved, sker det ikke her på Eksperten. Forklaringen er følgende: I formen ligger f.eks. et skjult felt med sidens egen adresse: <input type="hidden" name="retPage" value="<?=$_SERVER["PHP_SELF"]?>">
Formen submittes mod dokumentet 'response.php'. Dette dokument ser ud noget à la: <? // Her opdateres database og andet Header("Location: ".$_POST["retPage"]); ?>
Så returneres brugeren til siden, han kom fra - og kan opdatere denne så tosset, han vil.
Under ASP kan du bruge Response.Redirect - men jeg kan se på din bruger, du er JSP-mand. Der ved jeg desværre ikke, hvad en lignende funktionalitet hedder :)
Jeg har engang haft samme problem med en gæstebog, hvis folk klikkede to gange på submit, kom indlægget 2 gange, men så ændrede jeg tids-feltet i databasen til DATETIME og skrev ikke sekunder, og gjorde feltet UNIQUE. Så kan der ikke indsættes flere gange, ved en fejl.
mysql_query("INSERT INTO guestbook(name, time, message) VALUES ('$name', '$tid', '$comment')") or die("Enten har du klikket for meget eller også er Databasen optaget, prøv igen om et minut !!!");
Det er ikke min mening at sende brugeren væk fra siden :-) Jeg tror faktisk slet ikke det er fucus på knappen som er problemet. Kan jeg nulstille et felt efter det er blevet submittet
Burde jeg ikke kunne gøre således og så ligge det ind tilsidst i min opret. Grunden til at jeg vil gøre det på den måde er at jeg har et javascript som checker på at der står noget i feltet
<!-- Nulstil felt så det bliver fanget af JS i det tilfælde at der bliver trykket F5 --> <script type="text/javascript">document.nyundergruppe.underprodukt.value="";</script>
Hvad er der galt med det her. Det jeg vil opnå er at der er focus på den knap, så det er den som bliver aktiveret når man trykker return <body onload="document.nyundergruppe.indsaet.focus();">
Jo, du er netop interesseret i at sende brugeren til en anden side ... det er den eneste fornuftige måde, du undgår dit problem på - og den måde alle andre i verden klarer det på. Du kan sagtens redirect'e brugeren til siden selv (det behøver ikke være et andet dokument) - det giver samme resultat. Det, du er ude i nu, er helt klart en dårlig panikløsning ... du bør afgjort løse det på den anden måde ;o)
Jeg submitter formen til den samme side og det virker fint. Det med at man ikke må kunne trykke på F5 også bliver formen submittet igen er egentlig bare en detalje. Det som undre mig er blot at den værdi jeg har tastet ind ikke forsvinder når jeg har submittet første gang. Jeg vil gerne vise dig det i praksis hvis du vil se det
... anytime ;o) Jeg håber, du kan se, dette er en meget bedre løsning, end at lave forskellige JS-løsninger. Nu kurerer du tilstanden - i stedet for at sløre symptomerne :)
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.