Avatar billede sprocket Nybegynder
06. august 2002 - 09:24 Der er 10 kommentarer

Submit af form

Hej

Hvordan får jeg nedenstående til at fungere?

1) Validate() skal altid kaldes før der submittes
2) Ved tryk på enter i formen skal der submittes
3) Ved klik på link'et skal der submittes

I nedenstående bliver validate() ikke kaldt når jeg klikker på linket.

<form method="get" action="test.html" name="form1" onsubmit="java script:return validate();">
<input type="text" name="t1"><br>
<input type="text" name="t1"><br>
<input type="image" width="0" height="0" name="dummysubmit">
<a type="submit" href="java script:form1.submit();">Submit</a>
</form>

<script language="javascript">
    function validate(){
        alert('Validate');
        return true;
    };
</script>
Avatar billede =maddog= Nybegynder
06. august 2002 - 09:32 #1
du har to felter  der hedder det samme (t1) og det er ikke heldigt.
i øvrigt er der ikke noget der hedder type="submit" i <a>
prøv <a href="Submit" onclick="document.form1.submit();return false;">Submit</a>
og
onsubmit="if(validate()) return true else return false;"
Avatar billede bamzen Nybegynder
06. august 2002 - 09:33 #2
først og fremmest er det forkert at bruge java script: i en allerede javascript handler, eksempelvis din onsubmit

prøv lige dette kode frit fra leveren
<HTML>
<HEAD>
<script language="javascript">
    function validate(){
        alert('Validate');
        document.forms[0].submit();
    };
</script>
</HEAD>
<BODY>
<form method="get" action="test.html" name="form1" onsubmit="return false;">
<input type="text" name="t1"><br>
<input type="text" name="t1"><br>
<input type="image" width="0" height="0" name="dummysubmit" onClick="validate()">
<a href="java script:validate()">Submit</a>
</form>
</BODY>
</HTML>
Avatar billede =maddog= Nybegynder
06. august 2002 - 09:37 #3
bamzen> den vil ikke submitte ved return som krævet (onsubmit="return false;")
man bør under INGEN omstændigheder bruge java script: pseudoprotokollen til submit. viden jeg har fra olebole.
Avatar billede bamzen Nybegynder
06. august 2002 - 09:38 #4
ville du så smide en onsubmit=validate();return false

????
Avatar billede =maddog= Nybegynder
06. august 2002 - 09:41 #5
se min første kommentar.
Avatar billede jakoba Nybegynder
06. august 2002 - 09:42 #6
fjern 'java script:' i din onsubmit handler. blot:
<form method="get" action="test.html" name="form1" onsubmit="return validate();">

kald felterne noget forskelligt som =maddog= siger.

og skriv så dit link som:
<a href="java script:document.form1.dummysubmit.click();">Submit</a>
    så vil klik på det link medføre at din onvalidate aktiveres.

Så mener jeg du får den ønskede validering med alle 3 måder at submitte.

bemærk dog at den med submit-ved-enter er en microsoft besynderlighed. Den oprindelige regel er at <enter> kun skal virke som submit hvis formularen har netop eet tekstfelt og det felt er i focus. Når der er 2 eller flere felter i formularen burde det ikke virke.

mvh JakobA
Avatar billede sprocket Nybegynder
06. august 2002 - 09:45 #7
=maddog=> Jeg har prøvet dit forslag, men klik på linket kalder ikke validate()

Som du skriver, er det rigtigt, at hvis validate() returnerer false skal der IKKE submittes.
Avatar billede jakoba Nybegynder
06. august 2002 - 09:45 #8
Ups. det link kan give problemer :(
<a href="" onclick="document.form1.dummysubmit.click();return false;">Submit</a>
er bedre
Avatar billede sprocket Nybegynder
06. august 2002 - 09:54 #9
Jakoba> HREF er tom og derfor rammer den ikke test.html, når man klikker på linket
Avatar billede bamzen Nybegynder
06. august 2002 - 09:54 #10
kan du ikke lige udspecificere denne

document.form1.dummysubmit.click();

hvorfor bruger du click() i enden???
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