10. januar 2012 - 16:19
Der er
31 kommentarer og 1 løsning
a href i en form
Hej Eksperter Er det muligt at have <a href="java script:this.submit()">Ladida</a> i en form og få den til at submitte den form den er i uden at bruge getElementById?
Annonceindlæg fra Cepheo
10. januar 2012 - 16:45
#1
Der er godt nok ikke frygtelig mange hits på:
http://www.google.dk (...) , men må indrømme at jeg ikke andet det!
10. januar 2012 - 16:55
#3
*LoL* Jeg har lige tippet min gravide niece om en skøn 'pathat', en anden E-bruger, jeg hjalp i går aftes, har lavet. Jeg kom vis til at taste Ctrl+V i stedet for Ctrl+B et par steder i indlægget #2 :D Undskyld, men tjek endelig pathatten! Der skulle naturligvis have stået: "Såkaldte formkontroller - altså elementer som input, textarea, select - er del af formens select . De kan alle referere til formen med this.form (ikke bare this, som du forsøger med)." *D
10. januar 2012 - 16:58
#4
- og jeg kan se, linket til pathatten i #2 blev blandet sammen med noget andet (Pokker tage E's URL-parser!), så
her er det rigtige, hvis nogen er blevet nysgerrige =)
16. januar 2012 - 13:56
#5
this.form virker ikke for mig. OOOOoooooo("Det kunne være jeg skulle lade være med at have <a> i en form").
16. januar 2012 - 14:36
#6
"this.form virker ikke for mig" >> Nej, det er jo det, jeg skriver: Det virker ikke for nogen ."Det kunne være jeg skulle lade være med at have <a> i en form" >> Hvorfor dog det? Der er intet somhelst i vejen for at bruge links i en form
16. januar 2012 - 14:48
#7
Så svaret på mit spørgsmål er altså nej, man kan ikke submitte den form et link ligger i uden at bruge document.getElementById
16. januar 2012 - 15:06
#8
Det må på nuværende tidspunkt anses for værende slået fast =)
23. januar 2012 - 10:26
#9
Gør <a href="#" onclick="document.getElementById('FORM_ID').submit()">ladida</a> ikke det samme som <input type="submit" id="submit" name="submit" value="ladida"> Problemet er at jeg har et valideringscript som ikke bliver kaldt i det første tilfælde. <form id="FORM_ID" action="whatever" method="POST" onsubmit="return validate(this);">
23. januar 2012 - 12:49
#10
Nej, onsubmit handleren fyres ikke af, når formen submittes med JS
23. januar 2012 - 13:42
#11
hmmmm. Hvordan får jeg så valideret min form. Min onsubmit ser således ud. onsubmit="document.charset='ISO-8859-1';return validate(this);"
23. januar 2012 - 13:52
#12
Hvad er begrundelsen for
document.charset='ISO-8859-1'; ?
onclick="var f=document.getElementById('myForm');if(validate(f))f.submit()"
24. januar 2012 - 09:45
#13
Det er noget med at det CMS jeg bruger ikke fatter andet :-)
24. januar 2012 - 13:20
#14
Hvis den kode stammer fra CMS'et, kunne det tyde på, det ikke er professionelt skrevet
06. februar 2012 - 09:36
#15
Hvorfor kan jeg ikke følgende? <a href="java script:var f=document.getElementById('myForm');if(validatepresignupgen(f))f.submit();">Send</a> Jeg får valideret det første felt og så bliver jeg sendt til linket. Kan godt gøre således, onclick="var f=document.getElementById('myForm');if(validatepresignupgen(f))f.submit(); Det ville være bedre for mig hvis man kan gøre det første.
06. februar 2012 - 09:54
#16
Har også prøvet med <a href="java script:void();var f=document.getElementById('myForm');if(validatepresignupgen(f))f.submit();">Send</a>
06. februar 2012 - 14:36
#17
Nu skal man aldrig underkende folks fantasi i forhold til navngivning, men er du sikker på, din valideringsfunktion hedder validatepresignupgen ?
06. februar 2012 - 14:36
#18
- og hvis det er tilfældet, hvorfor i alverden er det så det? :D
06. februar 2012 - 14:58
#19
Det gør den altså og det virker som sagt også fint med onclick :-)
06. februar 2012 - 15:01
#20
Skal have fundet ud af om det jeg gerne vil overhovedet kan lade sig gøre?
06. februar 2012 - 15:02
#21
Det kan kun skyldes en anden fejl - eller noget, du ikke fortæller. Prøv at lægge et link til et eksempel
06. februar 2012 - 15:03
#22
- og selvfølgelig kan det lade sig gøre. At du ændrer måden, der bliver kaldt på, berører jo ikke valideringsfunktionens indre virkemåde =)
06. februar 2012 - 15:49
#23
Det ser således ud <html> <head> <script type="text/javascript"> function validate(o){ navn = o.name.value; email = o.emailAddress.value; if (navn.length<1){ alert("Skriv dit navn"); o.name.value=""; o.name.focus(); return false; } if (!email.match(/^[a-z0-9\-_\.]+@[a-z0-9\-_\.]+\.\w{2,4}$/i)) { alert("Skriv en e-mailadresse"); o.emailAddress.value=""; o.emailAddress.focus(); return false; } return true; } </script> </head> <body> <form id="myForm" action="/minurl" method="POST" enctype="ISO-8859-1" accept-charset="ISO-8859-1"> <input value="" id="name" name="name"> <input value="" id="email" name="emailAddress"> <a href="#" onclick="document.charset='ISO-8859-1';var f=document.getElementById('myForm');if(validate(f))f.submit();">Send</a> </form> </body> </html>
06. februar 2012 - 16:16
#24
<a href="java script:void(0);if(validate(document.getElementById('myForm')));document.getElementById('myForm').submit();">Send</a> virker næsten. Formen bliver dog submittet når man trykker på knappen selv om felterne ikke er rigtigt udfyldt
06. februar 2012 - 16:19
#25
<a href="java script:void(0);if(validate(document.getElementById('myForm')))document.getElementById('myForm').submit();">Send</a> Havde et ; for meget
06. februar 2012 - 16:27
#26
1)
void(0) giver ingen mening der. Det bør du slette.
2) Dit formtag bør se sådan ud:
<form id="myForm" action="/minurl" method="POST" enctype="application/x-www-form-urlencoded">
Din enctype giver ingen mening - og det gør din
accept-charset attribut heller ikke. Den eksisterer slet ikke.
3) document.charset='ISO-8859-1' er der heller ingen grund til at bruge. Til gengæld mangler du en Content-Type meta:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- og så er det lang tid siden, man gik over til
utf-8 .
iso-8859-1 er ikke ret anvendeligt i dag.
06. februar 2012 - 16:42
#27
Kender du i øvrigt den gamle sketch (som også Linje3 har lavet en version af):
A: Hvem spiller bas?B: HvemA: Nej, hvem spiller bas?B: Hvem! A: For fanden da, jeg spørger, hvem der spiller bas? B: Ja, Hvem spiller bas! A: Idiot! Så fortæl mig: Hvem spiller trommer?B: Nej, han spiller jo bas!A: For helvede! Hvad hedder ham der spiller trommer ...?!??!!! B: Nåhhh ... han hedder Bent - og ham, der spiller bas, hedder Hvem
Hvem pokker kan dog også finde på at kalde sit barn for 'Hvem'? Det kan måske han, som også kan finde på at kalde en name attribute for
name *o)
Brug aldrig ord, der bruges til andet. Ellers ender du og JavaScript hurtigt i en diskussion som den ovenfor =)
07. februar 2012 - 09:18
#28
Cool nok. Tak for hjælpen. Ligger du et svar ?
07. februar 2012 - 16:30
#29
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes =)
02. marts 2012 - 15:02
#30
lukker
17. april 2012 - 09:11
#31
Tak olebole, Lige hvad jeg manglede :-)
<i><ole>
Såkaldte formkontroller - altså elementer som input, textarea,
http://www.paapinden.dk/ (...) - er del af formens
http://www.paapinden.dk/ (...) De kan alle referere til formen med this.form (ikke bare this, som du forsøger med).
Sådan kan ingen andre elementer referere - heller ikke et link. Her er du nødt til at give formen et id og så kalde noget i stil med:
<a href="#" onclick="document.getElementById('FORM_ID').submit()">
/mvh
</bole></i>
17. april 2012 - 15:00
#32
Selvtak =)
Vi tilbyder markedets bedste kurser inden for webudvikling