Avatar billede supermand69 Nybegynder
02. januar 2004 - 05:10 Der er 17 kommentarer og
1 løsning

submit kun en gang

hej...

jeg har en form som skal submittes, men hvordan kan man gøre sådan at man ikke kan trykke på ENTER 2 eller flere gange så den samme form bliver sendt igen.. eller hvis man kommer til at dobbelt klikke på submit??
Avatar billede olebole Juniormester
02. januar 2004 - 05:27 #1
<ole>

Prøv at lægge en URL til siden ... jeg gider ikke lege quiz  :)

/mvh
</bole>
Avatar billede roenving Novice
02. januar 2004 - 05:56 #2
<form ... onsubmit="this.submitKnap.disabled=true">
Avatar billede olebole Juniormester
02. januar 2004 - 06:40 #3
Det ville ikke være så fedt på siden her  :)
Derfor spørger jeg ... så kan vi nemlig finde den rette løsning  ;o)
/mvh
Avatar billede supermand69 Nybegynder
02. januar 2004 - 14:33 #4
olebole > har ikke nogen url til siden.. for jeg har ikke lavet den endnu :p
Avatar billede supermand69 Nybegynder
02. januar 2004 - 14:44 #5
kan man ikke også bare gøre sådan at man reset'er inputtet så snart man har submittet?? :)
Avatar billede supermand69 Nybegynder
02. januar 2004 - 14:57 #6
roenving > man kan stadigvæk godt trykke på ENTER og så sender den igen...
Avatar billede supermand69 Nybegynder
02. januar 2004 - 15:04 #7
øhm... kommer lige med en kommentar mere :)

<form name="form_msg" target="chat_msg" action="iframe_chat_msg.php" method="post" autocomplete="off">
<input style="width: 500px;" type="text" name="msg" maxlength="<?=$field_length[msg]?>">
<input type="submit" name="send" value="Send">
</form>

selve siden bliver ikke refreshet... men den sender til en iframe som så laver en focus på msg inputtet...

hvordan kan jeg gøre sådan at man kun kan sende formen en gang, uden at man kan trykke på Send flere gange eller trykke flere gange på ENTER??
Avatar billede olebole Juniormester
02. januar 2004 - 16:56 #8
<form ... onsubmit="this.form.send.disabled=true">

Så skal den naturligvis enable's igen - men det er svært at angive en løsning, når vi ikke kender koden.
Du har dog - hvis chatten er lidt begavet bygget - din funktion, der skriver ind i hovedsiden liggende i samme dokument, som formen ligger i. I så fald skriver du - efter opdateringen af hoveddokumentet:
  document.form_msg.send.disabled = false;

/mvh
Avatar billede supermand69 Nybegynder
02. januar 2004 - 17:26 #9
det virker også fint... men man kan stadig bare trykke vildt på ENTER og den bliver ved med at sende formen?!
Avatar billede olebole Juniormester
02. januar 2004 - 17:28 #10
Tjahh ... vi kommer det nok ikke nærmere, når vi ikke kan se siden på nettet
Avatar billede supermand69 Nybegynder
03. januar 2004 - 15:02 #11
//-------------------------------------
//    chat.php
//-------------------------------------
<form name="form_msg" target="chat_msg" action="iframe_chat_msg.php" method="post" autocomplete="off" onsubmit="this.send.disabled=true">
<input type="text" style="width: 500px;" type="text" name="msg">
<input type="submit" name="send" value="Send">
</form>

<iframe class="iframe_hidden" name="chat_msg" src="iframe_chat_msg.php"></iframe>

//-------------------------------------
//    iframe_chat_msg.php
//-------------------------------------
<script type="text/javascript">
parent.document.form_msg.msg.value = '';
parent.document.form_msg.msg.focus();
parent.document.form_msg.send.disabled = false;
</script>
Avatar billede olebole Juniormester
03. januar 2004 - 18:05 #12
Det funker jo fint - jeg kom til at skrive 'this.form.send ...', hvilket var forkert  :)

Men hvorfor skriver du en masse JavaScript i dokumentet, serveren returnerer? Det er temmelig ineffektivt ... du skal blot have ét JS-kald til en funktion i hoved-dokumentet, der så sørger for resten.
Du husker forhåbentlig også kun at hente de meddelelser, brugeren endnu ikke har læst. Ellers bliver det noget grådigt 'skod', der trækker serverens performance voldsomt ned.

At skrive en ordentlig chat er ikke så simpelt, som mange tror  :)
/mvh
Avatar billede supermand69 Nybegynder
03. januar 2004 - 19:48 #13
jarh... henter kun alle nye beskeder, altså ikke hele db'en hver gang :p

jeg har stadig ikke fundet ud af hvordan jeg skulle løse problemet?? :)

er en ske til JS
Avatar billede olebole Juniormester
03. januar 2004 - 19:53 #14
<html>
<body>

<form name="form_msg" target="chat_msg" action="http://www.google.dk" method="post" autocomplete="off" onsubmit="this.send.disabled=true">
<input type="text" style="width: 500px;" type="text" name="msg">
<input type="submit" name="send" value="Send">
</form>

<iframe class="iframe_hidden" name="chat_msg" src="about:blank"></iframe>

</body>
</html>

Fungerer da smukt ... du kan ikke submitte formen mere end én gang. Jeg forstår ikke, hvad dit problem består i(?)
/mvh
Avatar billede supermand69 Nybegynder
03. januar 2004 - 21:08 #15
underligt... altså send knappen bliver godt nok deaktiveret indtil at den msg bliver reset.. men man kan stadig trykke vildt og uhæmmet på ENTER... og den bliver ved med at sende formen igen og igen :(
Avatar billede olebole Juniormester
03. januar 2004 - 21:13 #16
Ja, naturligvis ... det havde jeg overset i dit spm  :)

<form name="form_msg" target="chat_msg" action="http://www.google.dk" method="post" autocomplete="off" onsubmit="this.onsubmit=function(){return false}">
<input type="text" style="width: 500px;" type="text" name="msg">
<input type="submit" name="send" value="Send">
</form>

<iframe class="iframe_hidden" name="chat_msg" src="about:blank"></iframe><br>

<button onclick="document.form_msg.onsubmit=function(){this.onsubmit=function(){return false}}">Enable Send</button>

Prøv den ... du skulle nok kunne overføre den til dit eget brug  :)
Avatar billede supermand69 Nybegynder
03. januar 2004 - 21:24 #17
niiice... wuhuuu.... :)

lav et svar...
Avatar billede olebole Juniormester
03. januar 2004 - 22:04 #18
Jo, tak  :)
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