Avatar billede zimes Nybegynder
06. maj 2008 - 05:38 Der er 6 kommentarer og
1 løsning

At begrænse form submit til ét form objekt

Fik et javascript i spørgsmålet her: http://www.eksperten.dk/spm/830203

Det virker glimrende, lige indtil der placeres en <form> på siden. Så bliver siden submittet uanset hvilken knap man trykker på og det ødelægger jo lidt ideen. Det må da være muligt at forhindre at siden submittes, før man trykker på en decideret submit knap og kun den?
Avatar billede w13 Novice
06. maj 2008 - 08:02 #1
Det burde ikke kunne lade sig gøre. En form bør kun kunne submittes ved klik på submit-knapper eller ved enter eller medmindre man har givet den ordrer om andet.

Kan vi se koden?
Avatar billede zimes Nybegynder
06. maj 2008 - 08:17 #2
Heh, ja. Det er den du selv postede i ovenstående henvisning :)
Tilføjer man en standard <form> omkring koden, submitter den uanset hvad man trykker på.
Undlades <form> virker koden efter hensigten.
Avatar billede zimes Nybegynder
06. maj 2008 - 08:26 #3
Laver jeg en <input type="button"> i stedet for blot <button>, så submittes siden ikke.
Det er sådan set også fint, men desværre ønsker jeg at benytte et billede i stedet for en standardknap, og så opfører det sig som en regulær submitknap.
Er det mon så muligt at få input type="image" til at opføre sig som input type="button" og ikke en submitknap?
Avatar billede w13 Novice
06. maj 2008 - 09:40 #4
Jeg tror jeg bliver nødt til at se, hvordan du har gjort. For den bør ikke opføre sig sådan.
Avatar billede zimes Nybegynder
06. maj 2008 - 10:05 #5
Har løst det:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <script type="text/javascript">
    function inc(o){o.value++}
    function dec(o){o.value--}
    function OnlyNumbers(e){var charCode=e.which?e.which:event.keyCode;if(charCode>31&&(charCode<48||charCode>57))return false;return true}
    </script>
</head>
<body>

<form action="test.php" method="post">
<p><input id="field1" type="text" value="0" onkeypress="return OnlyNumbers(event)"></p>

<input type="button" value="Forøg" onclick="inc(document.getElementById('field1'))"  />
<input type="button" value="Formindsk" onclick="dec(document.getElementById('field1'))" />

<p><input id="field2" type="text" value="0" onkeypress="return OnlyNumbers(event)"></p>

<button onclick="inc(document.getElementById('field2'))">Forøg</button>
<button onclick="dec(document.getElementById('field2'))">Formindsk</button>

<p><input id="field3" type="text" value="0" onkeypress="return OnlyNumbers(event)"></p>

<img src="img/inc.png" onclick="inc(document.getElementById('field3'))"/>
<img src="img/dec.png" onclick="dec(document.getElementById('field3'))"/>
<br/><br/>
<input type="submit" value="Send">
</form>
</body>
</html>

Her vil den øverste række virke som det skal, men række to bliver udført lige umiddelbart inden siden submitter. Med <input type="button"> virker det. Med <button> opfører det sig som en submit.
Jeg forsøgte med <input type=image>, men det opfører sig ligeledes som en submitknap.
Kom i tanke om at onclick jo også kan overføres til andre elementer, så indsatte blot et img tag i stedet og omgik input typen helt. Række 3 blev det jeg benytter nu.
Avatar billede w13 Novice
06. maj 2008 - 10:25 #6
Ok. :) Så husk at oprette et svar og acceptere det så spørgsmålet lukkes og du får dine point igen.
Avatar billede zimes Nybegynder
06. maj 2008 - 10:54 #7
Jeg er rigtig lækker.
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