Avatar billede axkris Nybegynder
16. august 2005 - 15:44 Der er 21 kommentarer og
1 løsning

Submitte fra normal knap?

Hej alle

Jeg har følgende kode, som jeg gerne vil submitte fra:

<input name="Submit" type="button" onClick="minfunktion(' bla bla '); ????????.submit();" value=" OK " />

Hvad skal jeg skrive?

Har prøvet med:
document.submit();
this.this.submit();
document.this.this.submit();

Men de virker ikke.

Det er først, når jeg skriver navnet på forme, at det virker - altså:

document.PostTopic.submit();

Men da formen er dynamtisk, dur det ikke i længden.

Kan du hjælpe?
Avatar billede roenving Novice
16. august 2005 - 15:46 #1
<form ...>

...

<input name="Submit" type="button" value=" OK " />

</form>

Virker da ?-)
Avatar billede schwarz84 Nybegynder
16. august 2005 - 15:50 #2
Hvis du vil køre 'minfunktion' når der submittes gøres dette ved at sætte onsubmit="minfunktion('bla bla')" på form-tagget.
Avatar billede schwarz84 Nybegynder
16. august 2005 - 15:51 #3
roenving: Skal det ikke være: <input name="Submit" type="Submit" value=" OK " />
Avatar billede fennec Nybegynder
16. august 2005 - 15:51 #4
Med button er det:

<input name="Submit" type="button" onClick="minfunktion(' bla bla '); this.form.submit();" value=" OK " />
Avatar billede roenving Novice
16. august 2005 - 15:54 #5
>>schwarz84

-- selvfølgelig skal det det, hvis det også skal virke i IE !-)

-- og jeg mangler selvfølgelig også forklaringen på, at der er lavet en type button-input, måske det har noget med det sted knappen er i forhold til formen ?-)
Avatar billede olebole Juniormester
16. august 2005 - 15:54 #6
<ole>

I hvert fald sætter man vand over til spanking, når man kalder en submit-knap for 'Submit'. Det er et reserveret ord, så brug noget andet  ;o)

/mvh
</bole>
Avatar billede axkris Nybegynder
16. august 2005 - 16:09 #7
Takker alle - hermed opdateret, men her kommet et mystisk problem.

Når jeg submitter med følgende, så virker det (og det har det sådan set altid gjort):
<input type="submit" onClick="this.form.submit();" value="Ok">

Men da gerne vil gøre knappen disabled, så folk ikke kommer til at klikke igen, skriver jeg følgende, som ikke virker:
<input type="submit" onClick="this.form.submit(); this.disabled=true;" value="Ok">

Har også prøvet med:
<input type="submit" onClick="this.disabled=true; this.form.submit();" value="Ok">

Man uanset hvad, så kan server-side-funktionaliteten (asp'en) ikke længere læse værdien af et felt, som submittes. Men igen, hvis bare jeg fjerner disable-sætningen, så virker det igen (altså den godt kan læse værdien af omtalte felt). Altså følgende virker:
<input type="submit" onClick="this.form.submit();" value="Ok">

Men putter jeg noget bagefter submit() (eller foran), så kan den i asp'en ikke hente værdien af et felt og der kommer ingen js eller vb-fejl.

Hvad er løsningen?
Avatar billede olebole Juniormester
16. august 2005 - 16:13 #8
Ja, det er klart, at hvis du disable'er den, så kan din server ikke finde knappen - men du kan skrive alt muligt andet før og/eller efter submit()  :)

- men hvad gør det i øvrigt. Du har jo ikke noget at bruge knappen til på serveren  :)
Avatar billede roenving Novice
16. august 2005 - 16:15 #9
Det er dobbeltkonfekt at submitte først, og derefter submitte, det må give muligheder for uhensigtsmæssige fejl !-)

-- hvis du skal aftaste hvilken knap, der er trykket på, kan du f.eks. lægge værdien i et hiiden field:

<input type="hidden" name="submitType">
<input type="submit" onClick="this.form.submitType=this.value;this.disabled=true;" value="Ok">
Avatar billede olebole Juniormester
16. august 2005 - 16:16 #10
- og så er det value på feltet, der skal sættes  ;o)
    <input type="submit" onClick="this.form.submitType.value=this.value;this.disabled=true;" value="Ok">
Avatar billede fennec Nybegynder
16. august 2005 - 16:20 #11
Skal vi ikke lige få slået fast at der findes TO slags knapper.
En knap af typen "Submit"
Og en af typen "Button"

Submit knappen sender automatisk den form som den er en del af, mens en Button skal have en onClick event.
Avatar billede roenving Novice
16. august 2005 - 16:22 #12
>>fennec

-- det kommer an på hvilken browser, der bruges ...

-- og ole: Doh !-)
Avatar billede olebole Juniormester
16. august 2005 - 16:41 #13
fennec >> - og så er der den tredie - og fjerde:
  <button>Knap</button>
- og:
  <button type="submit">Knap</button>

- og så findes der type="reset" og type="image" ... der er nok at tage af  ;o)

- og som roenving lidt kryptisk anfører, så submitter FF altid, hvadenten det er en submit-type eller ej. Derfor bør man _altid_ huske at returnere false i onclick-handler'en på en knap, hvis ikke formen skal submittes, som følge af et klik på den  ;o)
Avatar billede olebole Juniormester
16. august 2005 - 16:43 #14
... ehhhhh ... som følge af et klik på knappen - ikke formen. Den danske sprog er en køn en  :)
Avatar billede fennec Nybegynder
17. august 2005 - 09:14 #15
olebole >>
Ja ok, men nu mente jeg at vi havde gang i to forskellige typer her. Kan godt se at jeg fik skrevet det forkert :o)
Avatar billede axkris Nybegynder
17. august 2005 - 15:44 #16
Så fandt jeg fejlen og fik rettet det, så det nu kører.

Hvis jeg skal disable knappen og samtidigt kunne læse værdien af et htmlarea (et javascript som udbygger en textarea), så skal jeg indsætte en "onsubmit();".

Virker:

<input type="button" onClick="this.form.onsubmit(); this.form.submit(); this.disabled=true;" value="    Ok    ">

Virker ikke (htmlarea'ens værdi aflæses ikke på serversiden):

<input type="button" onClick="this.form.submit(); this.disabled=true;" value="    Ok    ">

Nogle som kan give mig en forklaring? (Som sagt alt virker nu)

Tryk også svar, hvis I vil have nogle points.
Avatar billede roenving Novice
17. august 2005 - 15:46 #17
Hvilken funktion har du stående i onsubmit, for den skal du bare kalde !-)
Avatar billede axkris Nybegynder
17. august 2005 - 16:02 #18
Den er hermed fundet, men for nemhedens skyld bliver jeg bare ved med at kalde onsubmit(); Den er tilgængelig (includet) på alle sider, hvor det er relevant.

Takker for hjælpen :-)
Avatar billede olebole Juniormester
17. august 2005 - 16:18 #19
axris >> Det er en rigtig skidt idé at kalde funktionen på onsubmit-event'en - hvis du submitter med JS. Så fyres event'en nemlig ikke af  ;o)
Den fyres kun af, når formen submittes via en submit-knap - eller tryk på 'Return' i et input-felt.
Avatar billede axkris Nybegynder
17. august 2005 - 16:29 #20
Men det virker jo fint, kan ikke få det til at fejle.
Avatar billede axkris Nybegynder
29. august 2005 - 23:37 #21
Tryk svar alle :-)
Avatar billede axkris Nybegynder
01. oktober 2005 - 20:00 #22
Lukketid
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