[JS] submit afvangen

Pagina: 1
Acties:

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Ik wil graag de submit afvangen van een form. Aangezien we een vaag content/template systeem gebruiken wil ik graag vanuit extern JS libary de submit afvangen.

Ik dacht het als volgt te doen. Maar helaas de onsubmit word niet getriggerd op het moment er een form.submit() wordt aangeroepen. Heeft iemand een idee hoe ik dat kan oplossen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title> new document </title>
<script>
    function attachEvent(){
        theForm= document.getElementById("form");
        theForm.onsubmit=handleForm;
    }

    function handleForm(){
        return confirm(this.action);
    }

    window.onload=attachEvent;
    

</script>
</head>

<body>
<form id="form" action="test#" method="">
    <select>
        <option>s</option>
    </select>
    <input type="text" name="a" onclick="document.forms[0].submit();">
    <input type="submit">
</form>
</body>
</html>

Programmer - an organism that turns coffee into software.


  • Sappie
  • Registratie: September 2000
  • Laatst online: 18-04 09:00

Sappie

De Parasitaire Capaciteit!

wellicht is de id een beetje ongelukkig gekozen en werkt het daarom niet?

Komt ie uberhaupt wel in de handleForm functie?
edit:
verder wat andre zegt idd

[ Voor 14% gewijzigd door Sappie op 12-01-2006 15:26 ]

Specs | Audioscrobbler


  • André
  • Registratie: Maart 2002
  • Laatst online: 15-04 09:54

André

Analytics dude

Misschien moet je in de handleForm functie het event cancellen? Een return false geven zal niets doen op dit moment volgens mij.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Sappie schreef op donderdag 12 januari 2006 @ 15:24:
wellicht is de id een beetje ongelukkig gekozen en werkt het daarom niet?

Komt ie uberhaupt wel in de handleForm functie?
Als je op de submit butten drukt werkt het wel.

Door de onclick event in de textbox niet... Je krijgt ook geen confirm box te zien.

Dat is trouwens conform specs:
http://msdn.microsoft.com...erence/methods/submit.asp
André schreef op donderdag 12 januari 2006 @ 15:25:
Misschien moet je in de handleForm functie het event cancellen? Een return false geven zal niets doen op dit moment volgens mij.
Hoe kan je events stoppen? Je kan alleen de bubble stoppen maar de event handleForm zou door moeten gaan.

Maar hij komt niet in handleForm :(

[ Voor 48% gewijzigd door LuCarD op 12-01-2006 15:37 ]

Programmer - an organism that turns coffee into software.


  • André
  • Registratie: Maart 2002
  • Laatst online: 15-04 09:54

André

Analytics dude

Hmm, en wat als je het formulier zo gebruikt:

code:
1
<form id="form" action="test#" method="" onsubmit="return handleForm()">

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
André schreef op donderdag 12 januari 2006 @ 16:07:
Hmm, en wat als je het formulier zo gebruikt:

code:
1
<form id="form" action="test#" method="" onsubmit="return handleForm()">
Hetzelfde effect. :(

Plus dat ik de HTML niet echt makkelijk kan veranderen.

Is er geen mogelijkheid om de submit function te overschrijven?

[ Voor 18% gewijzigd door LuCarD op 12-01-2006 16:11 ]

Programmer - an organism that turns coffee into software.


  • Sappie
  • Registratie: September 2000
  • Laatst online: 18-04 09:00

Sappie

De Parasitaire Capaciteit!

anders maak je er zoiets van:
code:
1
<input type="text" name="a" onclick="if (document.forms[0].onsubmit()) document.forms[0].submit();">

Specs | Audioscrobbler


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Sappie schreef op donderdag 12 januari 2006 @ 17:22:
anders maak je er zoiets van:
code:
1
<input type="text" name="a" onclick="if (document.forms[0].onsubmit()) document.forms[0].submit();">
Dat zou betekenen dat ik de HTML moet veranderen, en dat is nou net wat ik wil voorkomen.
Aangezien ik gebonden ben aan een brakke CMS, is dat nogal lastig.

Programmer - an organism that turns coffee into software.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:09

crisp

Devver

Pixelated

Natuurlijk kan je wel de submit-method afvangen:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script type="text/javascript">

window.onload = init;

function init()
{
    var form = document.getElementById('myForm');
    if (form)
    {
        form._submit = form.submit;
        form.submit = mySubmit;
    }
}

function mySubmit()
{
    alert('woei!');
    this._submit();
}

</script>
<form action="#" id="myForm">
    <input type="button" value="click me" onclick="this.form.submit()">
</form>

Intentionally left blank


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
_/-\o_

Programmer - an organism that turns coffee into software.

Pagina: 1