Avatar billede 123maka Nybegynder
12. juni 2003 - 11:08 Der er 27 kommentarer og
1 løsning

En form skal slette indhold af textfield når der submittes

Jeg har en form med en kode som opdaterer den i en anden frame.
Hvordan kan jeg gøre så det man lige har skrevet bliver slettet ved submit.
Kan det lade sig gøre?
Avatar billede cdc Novice
12. juni 2003 - 11:13 #1
prøv denne:

<SCRIPT LANGUAGE="JavaScript"><!--
function mySubmit() {
    setTimeout('document.myForm.reset()',2000);
    return false;
}
//--></SCRIPT>

<FORM NAME="myForm" onSubmit="return mySubmit()">
<INPUT TYPE="INPUT">
<INPUT TYPE="SUBMIT">
</FORM>
Avatar billede roenving Novice
12. juni 2003 - 11:41 #2
Skal du undgå submit ?-) <-- bl.a. fordi /cdc's forhindrer submit ...

-- men til forståelse:
Du har en form hvor der indtastes, derefter opdateres data i en anden frame, og så vil du have, at formen er tom ...

-- den opdatering af data i den anden frame, skal det ske samtidig med at du submitter data, eller skal du ikke submitte ?-)
Avatar billede 123maka Nybegynder
12. juni 2003 - 11:51 #3
Ikke forhindre det...
Jeg har hapset denne kode fra et andet spg:
    <form action="send.php" method="post" target="besked_gem">
      <input type="text" name="textfield" size="50">
      <select name="til">
        <option value="0">Alle</option>
      </select>
    </form>
Den sender det jo til en anden frame men den sletter ikke indholdet af texten. Det er det jeg vil have den skal
Avatar billede roenving Novice
12. juni 2003 - 11:56 #4
Jamen så skal du bare ændre return false til return true i /cdc's script

-- arh måske en lille omskrivning:

<SCRIPT LANGUAGE="JavaScript">
function mySubmit(f) {
    setTimeout('f.reset()',2000);
    return true;
}
</SCRIPT>

og så kalde det med:

<form action="send.php" method="post" target="besked_gem" onsubmit="mySubmit(this);">
Avatar billede 123maka Nybegynder
12. juni 2003 - 12:06 #5
får en:
Linje: 1
Tegn: 1
Fejl: 'f' er ikke defineret
Kode: 0
Avatar billede roenving Novice
12. juni 2003 - 12:08 #6
- så har du ikke indsat 'this' i formen: onsubmit="mySubmit(this);">
Avatar billede cdc Novice
12. juni 2003 - 12:12 #7
Kan se roenving ordner med min blunder :o)
Avatar billede roenving Novice
12. juni 2003 - 12:14 #8
;O)
Avatar billede 123maka Nybegynder
12. juni 2003 - 12:15 #9
Jo jeg har... :/
Copy/Paste af min kode:

<SCRIPT LANGUAGE="JavaScript">
function mySubmit(f) {
    setTimeout('f.reset()',2000);
    return true;
}
</SCRIPT>

<form action="send.php" method="post" target="besked_gem" onsubmit="mySubmit(this);">
<INPUT TYPE="INPUT">
<INPUT TYPE="SUBMIT">
</FORM>
Avatar billede roenving Novice
12. juni 2003 - 12:18 #10
Ufff ;o|
-- der skal også stå onsubmit="return mySubmit(this);">

-- men det er ikke det, som kan være din fejl ?-)
Avatar billede 123maka Nybegynder
12. juni 2003 - 12:24 #11
Det hjalp ikke... :/
Får samme fejl... Har desværre ikke forstand på javascript endnu så kan ikke hjælpe til.
Avatar billede roenving Novice
12. juni 2003 - 12:29 #12
Prøv at sætte value="" på inputten og fjerne onsubmitten ...

-- hvis den ikke kender formen, så må det være fordi den mener den har et andet objekt, og så må den skulle initialisere det:

<form action="send.php" method="post" target="besked_gem">
<INPUT TYPE="text" value="">
<INPUT TYPE="SUBMIT">
</FORM>

<< der er heller ikke noget som hedder input type input ???
Avatar billede 123maka Nybegynder
12. juni 2003 - 12:54 #13
Jeg har lige givet mig selv et dummeslag og det burde du også gøre :o)
Formen skulle jo hedde f (name="F") :P
Tak for hjælpen :)
Avatar billede 123maka Nybegynder
12. juni 2003 - 12:57 #14
Hm... Jeg har en:
      <select name="til">
        <option value="0">Alle</option>
        <option value="1">123maka</option>
      </select>
Kan man gøre så den ikke refresher eller?
Avatar billede 123maka Nybegynder
12. juni 2003 - 14:01 #15
Fandt denne her:
onSubmit="document.f.textfield.value=''"

Men i får point alligevel for mig besvær med at skræddersy mit script. Opret svar :)
Avatar billede 123maka Nybegynder
12. juni 2003 - 16:20 #16
Fandt ud af at den ressestede FØR den blev sendt.
Jakoba har skrevet denne her kode men den virker ikke den sletter ikke teksten:
onSubmit="setTimeout('document.f.besked.reset()',100);return true">
Avatar billede 123maka Nybegynder
12. juni 2003 - 16:47 #17
lukker
Avatar billede roenving Novice
12. juni 2003 - 17:20 #18
Hvorfor virker den ikke -- kan faktisk godt huske tråden efter at have kigget på den, selvom det jo er år siden ...
Avatar billede 123maka Nybegynder
12. juni 2003 - 19:05 #19
Ja den hedder besked_gem.
Den sender "POST" oplysningerne men den sletter ikke teksten i "besked" vinduet
Avatar billede roenving Novice
13. juni 2003 - 06:36 #20
Jeg tænkte li'e på ...

Du har din form i en frame, og dine beskeder i en anden ...

-- du har noget, du vil have slettet og noget du vil have bevaret i din indtastningsformular ...

-- så har vi jo et modervindue, som er der hele tiden, så:

I frameset-dokumentet:

<script language="javascript" type=text/javascript">

var modtager = 0;

function refreshInputForm(){
  inputFrame.document.f.reset();//her bruger vi reset, hvis det ikke virker kan felt-indholdet jo slettes 'langsomt' ...
  inputFrame.document.f.til.selectedIndex = modtager;
}
</script>

og så onsubmit:

<form name="f" ... onsubmit="parent.modtager=this.til.selectedIndex;parent.setTimeout('parent.refreshInputForm()',500);">

-- jeg blev i tvivl om den sidste parent skulle med, men hvis parent-objektet alligevel er det øverste kan det ikke skade ...

-- og i øvrigt ganske utestet ;O)
Avatar billede technodance.dk Nybegynder
13. juni 2003 - 06:55 #21
det her virker!!

<SCRIPT LANGUAGE="JavaScript">
function mySubmit(f) {
    setTimeout('document.myForm.reset()',2000);
    return true;
}
</SCRIPT>

<form action="send.php" method="post" target="besked_gem" onsubmit="mySubmit(this);">
<INPUT TYPE="INPUT">
<INPUT TYPE="SUBMIT">
</FORM>

/rene/
Avatar billede 123maka Nybegynder
13. juni 2003 - 12:16 #22
Det virker ikke helt roenving :/

HELE KODEN:
<?
session_start();
include('auth.php');
?>
<SCRIPT LANGUAGE="JavaScript">
function mySubmit(f) {
    setTimeout('f.reset()',2501);
    return true;
}
var modtager = 0;

function refreshInputForm(){
  inputFrame.document.f.reset();//her bruger vi reset, hvis det ikke virker kan felt-indholdet jo slettes 'langsomt' ...
  inputFrame.document.f.til.selectedIndex = modtager;
}
</SCRIPT>

<body background="img/4.jpg"  leftmargin="0" rightmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="700" border="0" cellspacing="0" cellpadding="0" height="54">
  <tr>
    <td width="20" rowspan="2">&nbsp;</td>
    <td width="680" valign="top" height="19">&nbsp;</td>
  </tr>
  <tr>
    <td width="680" valign="top">
    <form name="f" action="gem_besked.php" method="post" target="besked_gem" onsubmit="parent.modtager=this.til.selectedIndex;parent.setTimeout('parent.refreshInputForm()',500);">
      <input type="text" name="besked" size="50">
      <select name="til">
        <option value="0">Alle</option>
        <option value="1">KaW</option>
      </select>
    </form>
    </td>
  </tr>
</table>
Avatar billede roenving Novice
13. juni 2003 - 12:20 #23
Lagde du mærke til:

I frameset-dokumentet:
Avatar billede roenving Novice
13. juni 2003 - 12:20 #24
For det der har du da ikke sat ind i frameset-dokumentet !o]
Avatar billede 123maka Nybegynder
13. juni 2003 - 12:48 #25
okay... er
InputForm == mit form navn
inputFrame == mit frame navn eller?
Avatar billede roenving Novice
13. juni 2003 - 12:56 #26
Ja, når du har et frameset, så er det et selvstændigt html-dokument (hvis du ikke laver det i iframes, men lige det her skal faktisk ikke gøres anderledes), og inde i det definerer du nogle frames, som også er selvstændige html-dokumenter.

Det der er fidusen i min tanke er, at frameset-dokumentet jo ikke ændres/fjernes på noget tidspunkt -- det er det samme dokument uanset hvor mange gange du skifter indhold i de forskellige frames:

FRAMESET (moder-dokument)
|                            |
|                            |
FRAME1      FRAME2

De html-sider, som findes i frame1 og frame2 er så 'børn' af frameset-dokumentet (og derfor bruger man parent som reference)
Avatar billede 123maka Nybegynder
13. juni 2003 - 13:04 #27
Hehe.. Parent.. Nu har jeg fattet pointen i det navn :)

Still not working :/
I mit frameset:
<script language="javascript" type="text/javascript">

var modtager = 0;

function refreshInputForm(besked){
  downframe.document.f.reset();//her bruger vi reset, hvis det ikke virker kan felt-indholdet jo slettes 'langsomt' ...
  downframe.document.f.til.selectedIndex = modtager;
}
</script>

I skriveren:
onsubmit="parent.modtager=this.til.selectedIndex;parent.setTimeout('parent.refreshInputForm()',500);">
Avatar billede roenving Novice
13. juni 2003 - 15:10 #28
Får du dit valg i selecten opfrisket ?-)
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