Avatar billede lillebror Nybegynder
09. januar 2006 - 16:18 Der er 11 kommentarer og
1 løsning

Hvilken knap har forsøgt submit?

Jeg har en form der skal valideres, men valideringen afhænger af, hvilken knap man trykkede submit på. Jeg har i alt 3 submit knapper i samme <form> derfor ville det være rart at vide hvilken af dem, der kalde onSubmit eventen, kan det lade sig gøre? Og hvordan?
Avatar billede emileej Nybegynder
09. januar 2006 - 16:33 #1
Mener ikke at det er muligt at checke via javascript. I stedet kunne du gøre det den anden vej rundt - lade javascriptet udstede submit kaldet på baggrund af funktionskald udstedt af knapperne. Ex:

<script>
function Send(side)
{
    var minForm=document.getElementByID("minform");
    minForm.action=side+".php";
    minForm.submit();
}

function SendDefault()
{
    Send('en'); //eller du kunne bruge en alert hvor du brokker dig over at man ikke har valgt en af knapperne
}
</script>

<form id="minForm" ... onsubmit="SendDefault()">
    <a href="#" onclick="Send('en')">Send A</a>
    <a href="#" onclick="Send('to')">Send B</a>
    <a href="#" onclick="Send('tre')">Send C</a>
</form>
Avatar billede lillebror Nybegynder
09. januar 2006 - 17:00 #2
Men med den løsning vil man da ikke kunne validere formularen? Det gør jeg jo med onsubmit

Jeg tror jeg vil forsøge at lave en løsning, hvor hver knap sætter <input type="hidden" name="hvilkenKnap" value="0" /> til et tal, og så kan jeg bruge denne værdi i valideringen til at tjekke hvilken knap der blev aktiveret.
Avatar billede olebole Juniormester
09. januar 2006 - 21:20 #3
<ole>

<form ................>
    <input type="hidden" name="submitKnap">
    <button type="submit" onclick="this.form.submitKnap.value=1">Send 1</button>
    <button type="submit" onclick="this.form.submitKnap.value=2">Send 2</button>
    <button type="submit" onclick="this.form.submitKnap.value=3">Send 3</button>
</form>

Så kan du på serveren spørge på værdien af feltet 'submitKnap'  :)

/mvh
</bole>
Avatar billede emileej Nybegynder
10. januar 2006 - 15:34 #4
lillebror << Hvad forhindrer dig i at placere validering før kaldet til minForm.submit(); ?
Avatar billede olebole Juniormester
10. januar 2006 - 20:47 #5
emileej >> at brugeren trykker 'Return' i et tekstfelt  ;o)
Avatar billede lillebror Nybegynder
10. januar 2006 - 22:40 #6
Din løsning er lidt mere simpel end den jeg fik lavet, men det virker i hvert fald efter hensigten!

Som det rigtigt nok bliver påpeget, kan man risikere at folk trykker enter i felterne. Derfor vil jeg bruge onsubmit i <form>
Avatar billede olebole Juniormester
10. januar 2006 - 22:52 #7
- selvtak
Avatar billede emileej Nybegynder
10. januar 2006 - 23:05 #8
Det forhindrer ikke validering. Hvis i lige ville tage et kig på koden igen og bemærk brugen af "SendDefault".
Avatar billede olebole Juniormester
11. januar 2006 - 00:00 #9
Jo ... prøv  ;o)
Avatar billede olebole Juniormester
11. januar 2006 - 00:02 #10
Undskyld ... jo, det virker - men er efter min mening at gå over åen efter vand. Ikke ligefrem elegant  :)
Avatar billede olebole Juniormester
11. januar 2006 - 00:05 #11
... og nej igen  :D

Hvis formens almindelige submit-event skal forhindres, skal der returneres false i event-handleren ... det kan ikke ske med dit script  :)
Avatar billede emileej Nybegynder
11. januar 2006 - 02:53 #12
Ahr. Come on. Lidt fantasi har man da lov at have.
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