Avatar billede oasen Nybegynder
28. maj 2002 - 00:38 Der er 17 kommentarer og
1 løsning

OnSubmit - tøm formular

Jeg har en formular på siden. Data'ne fra denne submit'tes til en Iframe på samme side.
Når disse submit'tes kunne jeg godt tænke mig at formen bliver tømt automatisk og curseren sættes i feltet, uden at siden opdateres. Jeg kunne forestille mig, det er noget med "OnSubmit", men hvordan mere præcist?
Avatar billede =maddog= Nybegynder
28. maj 2002 - 00:45 #1
lad os sige at din form hedder formnavn
<form .alting. onsubmit="toemform(this)">

og i <script>
function toemform(f) {
for (i=0;i!=f.elements.length;i++) {
  f.elements[i].value = "";
}
tømmer revl og krat. jeg tror dog at det bliver lidt for gennemgribende.
Avatar billede =maddog= Nybegynder
28. maj 2002 - 00:46 #2
der mangler en } og det er ligemeget hvad din form hedder. jeg er lidt træt og sådan.
function toemform(f) {
  for (i=0;i!=f.elements.length;i++) {
    f.elements[i].value = "";
  }
}
Avatar billede oasen Nybegynder
28. maj 2002 - 00:49 #3
Jeg fandt selv denne:

<form name='form' onSubmit=""setTimeout('document.form.reset()',250);return true"">

Det er vist bedre, men hvordan tilføjes en onload, der sætter fokus i feltet "besked"?

Ved du det, maddog?
Avatar billede =maddog= Nybegynder
28. maj 2002 - 00:53 #4
onload af dokumentet?
i <script> :
onload = function() { document.formnavn.Besked.focus(); }
burde virke.
Avatar billede oasen Nybegynder
28. maj 2002 - 00:58 #5
Ja, onload-handleren skal jo så ikke sættes i <body>, da siden ikke opdateres. Men kaldes via en funktion, som du er inde på - det prøver jeg lige.
Avatar billede =maddog= Nybegynder
28. maj 2002 - 01:03 #6
onload betyder at <body> genindlæses og det er du jo ikke interesseret i. prøv istedet
<form name='form' onSubmit="setTimeout('document.form.reset()',250);this.Besked.focus();return true;">
eller
<form name='form' onSubmit="setTimeout('document.form.reset()',250);document.form.Besked.focus();return true;">
Avatar billede oasen Nybegynder
28. maj 2002 - 01:07 #7
Dette virker - ser det ud som det skal?

<SCRIPT language="JavaScript">
<!-- skjul indhold for gamle browsere

function checkForm(){ 

        document.form.besked.focus();
    setTimeout('document.form.reset()',250)
}
-->
</SCRIPT>

***********************

<form name='form' onSubmit=""return checkForm()"">
Avatar billede oasen Nybegynder
28. maj 2002 - 01:10 #8
Uden at være helt sikker, tror jeg "this" refererer til noget forkert, hvis det sættes ind der, så jeg prøver lige den sidste..
Avatar billede =maddog= Nybegynder
28. maj 2002 - 01:10 #9
er det en fejl ved eksperten at der kommer to ""? det bør der ikke være. du behøver ikke at skrive return foran checkForm da du ikke angiver en return værdi i checkForm funktionen. ellers er det ok.
Avatar billede oasen Nybegynder
28. maj 2002 - 01:14 #10
Ok - men din sidste virker fint:

<form name='form' onSubmit=""setTimeout('document.form.reset()',250);document.form.besked.focus();return true;"">
Avatar billede =maddog= Nybegynder
28. maj 2002 - 01:15 #11
this refererer til det objekt der affyrede event'en. i det her tilfælde er det == document.form og de to ting er identiske.
Avatar billede oasen Nybegynder
28. maj 2002 - 01:15 #12
...så jeg bruger den!

Nej, det er skam mig selv der har sat to gange " for at undgå VB-fejl.
Avatar billede =maddog= Nybegynder
28. maj 2002 - 01:15 #13
skal jeg have en 5 point synes du?
Avatar billede oasen Nybegynder
28. maj 2002 - 01:16 #14
Ang. "this" - du har sikkert ret - jeg er ikke så stiv i det klient-sprog.
Avatar billede oasen Nybegynder
28. maj 2002 - 01:16 #15
5 ponits?
Avatar billede =maddog= Nybegynder
28. maj 2002 - 01:18 #16
well, jeg har jo ikke svaret på det stillede spørgsmål og kvalificerer jo ikke til points.
Avatar billede oasen Nybegynder
28. maj 2002 - 01:20 #17
Du har da givet mig lige præcis det, jeg ønskede, så du får selvfølgelig alle 15 points.
Men det kræver, du lige laver et svar...

Mange tak for hjælpen :)
Avatar billede =maddog= Nybegynder
28. maj 2002 - 01:21 #18
jeps. var så lidt.
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