Avatar billede icedox Nybegynder
13. september 2003 - 08:20 Der er 21 kommentarer og
1 løsning

OnSubmit clear input

Hej!
Jeg har en chat, hvor form bliver
submitteret til en iframe.

Når jeg har skrevet en besked, får jeg
godt nok FOKUS på input, men jeg mangler
clear() funktionen til at virke.
Der er ingen knap, kun return.

Koden :
<form name="ff" onsubmit="return handle(FF)" ..

<script language="javascript">

  function handle(ff){
      var text = ff.Msg.value
      if(text == "") return false;
     
      ff.Msg.value = text;
        ff.RefreshRate.value = document.forms[1].intreval[document.forms[1].intreval.selectedIndex].value

ff.Msg.value="";
ff.Msg.focus();
return true;
  }
</script>
Avatar billede erikjacobsen Ekspert
13. september 2003 - 08:23 #1
Jeg ville tro:

<form name="ff" onsubmit="return handle(this)" ..

Og så det lille trick: flyt teksten over til et hiddenfelt, som du aflæser
på serveren, og sæt derefter "" ind i tekstfeltet.
Avatar billede icedox Nybegynder
13. september 2003 - 08:34 #2
God morgen :) !
Ja, det har jeg også prøvet.
Den her virker ikke :
form.visMsg.value="";
Avatar billede erikjacobsen Ekspert
13. september 2003 - 08:37 #3
Hvorfor skriver du "form" ?? Hvordan ser din <form> ud?
Avatar billede icedox Nybegynder
13. september 2003 - 08:39 #4
<FORM NAME="ff" TARGET="chat" ACTION="chat.asp" METHOD="POST" onSubmit="return handle(this);">
Avatar billede erikjacobsen Ekspert
13. september 2003 - 08:40 #5
Fair nok. Jeg må reformulere: hvad står der mellem <form> og </form>
Avatar billede icedox Nybegynder
13. september 2003 - 08:41 #6
<script language="javascript">

  function handle(form){
      var text = form.visMsg.value
      if(text == "") return false;
      form.Msg.value = text;
      form.RefreshRate.value = document.forms[1].intreval[document.forms[1].intreval.selectedIndex].value
      form.visMsg.value="";
      form.visMsg.focus();
      return true;
  }

  function exitChat(){
      parent.frames.location.href='exit.asp';
      return false;
  }

</script>

</HEAD>
<BODY BGCOLOR="cccccc" TEXT=#000000 onLoad="document.message.visMsg.focus()">

<TABLE><TR><TD  ALIGN=CENTER VALIGN=TOP>
<FORM NAME="message" TARGET="chat" ACTION="chat.asp" METHOD="POST" onSubmit="return handle(this)">
<font face="ms sans serif" size=2>Besked:</font>
<input type="text" size=40 name="visMsg">
<input type="hidden" Name="Msg" value="">
<input type="hidden" Name="RefreshRate">
<input type="hidden" Name="Add" value="TRUE">
</TD>
</form>
Avatar billede icedox Nybegynder
13. september 2003 - 08:47 #7
Denne kode er på en side : default.asp,
men form Submit ind i iframe chat.asp.
Avatar billede icedox Nybegynder
13. september 2003 - 08:58 #8
Mon ikke der skal noget Dynamic til! :)
Avatar billede erikjacobsen Ekspert
13. september 2003 - 09:02 #9
Det ser umiddelbart korrekt ud. Hvad er reaktionen? Hvordan virker den ikke?
Avatar billede erikjacobsen Ekspert
13. september 2003 - 09:08 #10
..og har du et link...?
Avatar billede icedox Nybegynder
13. september 2003 - 09:10 #11
Jeg skriver besked, og den bliver sendt til chat.asp,
Så langt, så godt.
Men så står beskeden stadig i inputfeltet, hvor man skal slette det
selv, for at skrive en ny.
Men der er focus godt nok.
Avatar billede erikjacobsen Ekspert
13. september 2003 - 09:12 #12
Prøv lige at skrive

// form.RefreshRate.value = document.forms[1].intreval[document.forms[1].intreval.selectedIndex].value

Dvs. "fjern" den linie
Avatar billede icedox Nybegynder
13. september 2003 - 09:14 #13
Link, nej, det er efter LOGIN,,
Avatar billede icedox Nybegynder
13. september 2003 - 09:16 #14
Ja, det var dejligt.
Jeg har nu fjernet den, og den ser ikke ud til at være andet
end i vejen.

-men, det hjalp ikke. Beskeden står stadig i inputfeltet, med fokus.
Avatar billede erikjacobsen Ekspert
13. september 2003 - 09:37 #15
Så flyt lidt rundt på det

function handle(form){
      var text = form.visMsg.value
      form.visMsg.value="";
      if(text == "") return false;
      form.Msg.value = text;
      form.visMsg.focus();
      return true;
  }
Avatar billede stringbuffer Nybegynder
13. september 2003 - 09:41 #16
Prøv at ændre dette:
var text = form.visMsg.value;
if(text == "") return false;
form.Msg.value = text;
til dette:
var text = form.visMsg.value;
if(text == "") return false;
form.Msg.value = "";

Forresten bør du nok bruge et andet ord end form i din funktion, da det er ikke alle browsere, der vil æde det.
Avatar billede icedox Nybegynder
13. september 2003 - 09:41 #17
Det har jeg nu prøvet - men uden held.

Jeg har også prøvet at tilføje :
form.visMsg.Clear() - men uden held.
Avatar billede erikjacobsen Ekspert
13. september 2003 - 09:48 #18
Denne  funktion virker altså perfekt hos mig:

  function handle(form){
      var text = form.visMsg.value
      if(text == "") return false;
      form.Msg.value = text;
      form.visMsg.value="";
      form.visMsg.focus();
      return true;
  }
Avatar billede stringbuffer Nybegynder
13. september 2003 - 09:55 #19
Prøv at lave en submit knap. Uden noget kode bagved eller noget, bare så der er en. Nogle gange vil en form ikke virke medmindre der er en.
Avatar billede icedox Nybegynder
13. september 2003 - 10:17 #20
Erik!
Kan du klikke på svar :)
Det kører nu.
Avatar billede erikjacobsen Ekspert
13. september 2003 - 10:19 #21
okay - du er sikker på du ikke bruger den der Refreshrate til noget?
Avatar billede icedox Nybegynder
13. september 2003 - 10:24 #22
Jo, den bruger jeg også.
Tak for hjælpen :)
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