Avatar billede hangaard Nybegynder
05. januar 2004 - 14:08 Der er 16 kommentarer og
1 løsning

Link i stedet for submit-knap som fungerer præcis som submit-knap

Hej I kloge hoveder!

Jeg ved godt at der er flere spørgsmål som lyder som dette, men jeg har ikke fundet et som løste mit problem.

Kan man få et link til at opføre sig nøjagtig som en submit-knap?

Jeg troede jeg bare kunne skrive...

<a href="java script:minform.submit();">Send</a>

...og så ville der ske det samme som hvis jeg havde brugt...

<input type="submit" value="Send">

...men det gør der ikke!

Mit form-tag ser således ud...

<form name="minform" method="post" onsubmit="return validerForm(this);">

...ved brug af submit-knappen bliver indholdet af onsubmit eksekveret, men ved brug af submit() bliver det ikke.

Jeg vil helst slippe for at skulle lave min egen submit-metode hvori jeg kalder validerForm(...) og submit().

Mvh.
Hangaard
Avatar billede thesurfer Nybegynder
05. januar 2004 - 14:10 #1
Har du prøvet?
<a href="#" onClick="document.minform.submit();return false;">Submit formen</a>
Avatar billede thesurfer Nybegynder
05. januar 2004 - 14:11 #2
"document" kan muligvis udskiftes med "window"..
Men, hvilken fejl får du, når du bruger "java script:minform.submit()" ?
Avatar billede mm12010 Nybegynder
05. januar 2004 - 14:12 #3
du indsætter bare document.minform.submit(); nederst i din valideringsfuktion, så formen først afsendes efter valideringen
Avatar billede erikjacobsen Ekspert
05. januar 2004 - 14:13 #4
Et alternativ er at få submitknappen til at ligne et link. Jeg ved selvfølgelig
ikke om det er godt nok i dit tilfælde:

<form method="get" action="http://www.kongehuset.dk">
<input type="submit" name="send" style="color:purple; background-color:#ffffff; border-color:#ffffff; border-bottom:none; border-left:none; border-right:none; border-top:none; text-decoration:underline; Cursor:hand;" value="send">
</form>

Det opfører sig dog ikke helt som et link da man godt kan se knap-effekten når man klikker på linket.
Avatar billede mm12010 Nybegynder
05. januar 2004 - 14:14 #5
eventet "onSubmit" indtræden simpelthen ikke når der bruges submit();
Avatar billede hangaard Nybegynder
05. januar 2004 - 14:19 #6
Det jeg egentlig er ude efter er, at få smidt eventet "onSubmit" uden brug af submit-knappen - er dette muligt.

Til thesurfer: Jeg får ingen fejl, men submit() funktionen smider ikke det foroven-nævnte event.
Avatar billede thesurfer Nybegynder
05. januar 2004 - 14:21 #7
Og det her var udelukket?:
<a href="#" onClick="return validerForm(document.minform);return false">Submit form</a>
Avatar billede mm12010 Nybegynder
05. januar 2004 - 14:26 #8
<a href="#" onClick="if(validerForm(document.minform)){document.minform.submit();return false;}">Submit form</a>
Avatar billede hangaard Nybegynder
05. januar 2004 - 14:34 #9
Det kan være det er den løsning jeg ender med at måtte bruge, men jeg kunne godt tænke mig at kunne nøjes med at kalde en submit()-lignende metode som opfører sig som hvis man havde trykket på submit-knappen.

Problemet er at "onSubmit"-eventet ikke bliver smidt når submit() kaldes, som den gør når submit-knappen bliver aktiveret.

Kunne man måske smide eventet selv? Så kunne jeg skrive fx...
<a href="java script:doSubmit">Send</a>
...
function doSubmit() {
  Event.throw("onSubmit"); // fantasi-kode - jeg ved det godt
  minform.submit();
}
Avatar billede erikjacobsen Ekspert
05. januar 2004 - 14:41 #10
Du kan godt (bare en skitse for at vise princippet):

<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
  function dosubmit(f) {
    if (f.onsubmit()) {
      f.submit();
    }
  }
//-->
</SCRIPT>

<form name="f" onsubmit="alert('bare en test');return false">

</form>


<a href="#" onclick="dosubmit(document.f);return false;">hejsa</a>
</body>
Avatar billede thesurfer Nybegynder
05. januar 2004 - 14:42 #11
Smid lige koden til validerForm herind..

Du kan vel bare nøjes med at bruge (Pseudo kode):

<script type="text/JavaScript">
function validate()
{
// en masse kode...
if (alle felter == ok) {
// alle felter er OK:
document.minform.submit();
} else {
//fejl i formen:
alert('felter mangler at blive udfylde eller whatever');
return false;
}

}
</script>
<a href="#" onClick="validate()">Submit form</a>
Avatar billede thesurfer Nybegynder
05. januar 2004 - 14:44 #12
erikjacobsen> Bruger du editoren EditPlus..? :)
I fremtiden hedder det vist "<script" (små bogstaver) og type="text/JavaScript".. :)
Avatar billede erikjacobsen Ekspert
05. januar 2004 - 15:25 #13
Og man bør i mit eksempel retfærdigvis:

    if (!f.onsubmit || f.onsubmit()) {
Avatar billede hangaard Nybegynder
05. januar 2004 - 15:54 #14
erikjacobsen>
Jeg har brugt din løsning, for den er efter min mening den pæneste, men du må sende mig et svar hvis du vil have pointene.

Men du må godt forklare dit sidste indslag (15:25).

Mvh.
hangaard
Avatar billede erikjacobsen Ekspert
05. januar 2004 - 18:31 #15
Hvis du ikke skriver <form onsubmit="..."> er der ikke en submitfunktion,
og du vil få en fejl hvis du ikke bruger 15:25. Bare derfor.
Avatar billede hangaard Nybegynder
06. januar 2004 - 10:31 #16
OK - Tak!

Jeg har 30 point til dig, så du må lige poste et "svar".

hangaard
Avatar billede erikjacobsen Ekspert
06. januar 2004 - 11:09 #17
nåh ja
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