[JS] onclick handler gaat af bij form submit

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Ik dacht dat ik iets van HTML wist, maar zojuist zie ik iets vreemds.

Ik heb een form met een submit button <input type=submit>. Op deze button ligt een onclick handler.
Als ik in een tekstveld op enter druk, wordt het formulier gesubmit, maar gaat ook de onclick handler van de button af. Deze bevat een "return false", waardoor de submit niet doorgaat.

Ik dacht altijd dat je geen onclick handlers moest gebruiken op submit buttons, omdat je niet zeker weet of deze aangeroepen wordt (zoals met enter bypassen), maar dit gedrag heb ik volgens mij nog nooit gezien.

Dit is de pagina:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>test</title>
    <script type="text/javascript" src="/jsf2test/javax.faces.resource/validationBehavior.js.xhtml"></script>
  </head>
  <body>
    <form id="j_idt8" name="j_idt8" method="post" action="/jsf2test/index.xhtml" enctype="application/x-www-form-urlencoded">
      <input type="hidden" name="j_idt8" value="j_idt8" />
      text: <input type="text" name="j_idt8:j_idt10" /><br />
      number: <input type="text" name="j_idt8:j_idt12" /><br />
      date: <input type="text" name="j_idt8:j_idt14" /><br />
      <input id="j_idt8:j_idt16" type="submit" name="j_idt8:j_idt16" value="Click" onclick="alert('submitting');;return false" />
      <input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="..." autocomplete="off" />
    </form>
  </body>
</html>


Betekent dit dat ik geen "form.onsubmit" event meer nodig heb, maar op het "button.onclick" event kan vertrouwen?

Fat Pizza's pizza, they are big and they are cheezy


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
HTML:
1
2
<form onsubmit="alert('submitting'); return false;">
</form>

[ Voor 3% gewijzigd door XWB op 14-03-2010 21:56 ]

March of the Eagles


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:46

crisp

Devver

Pixelated

Het klopt dat dat voorheen altijd undefined behaviour was en veel UA's inderdaad ook niet de onclick van het default submit-element triggerde bij een 'impliciete submit' (bijvoorbeeld dmv de enter-toets).

Echter is in HTML 5 dit gedrag wel gespecificeerd: http://www.w3.org/TR/html5/forms.html#implicit-submission

Daarbij blijft evenwel het onsubmit event van het formulier toch het meest logische event om te gebruiken voor de meeste pre-submit zaken.

[ Voor 19% gewijzigd door crisp op 14-03-2010 22:03 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • pieturp
  • Registratie: April 2004
  • Laatst online: 15:56

pieturp

gaffa!

.

[ Voor 99% gewijzigd door pieturp op 14-03-2010 22:01 . Reden: nevermind ]

... en etcetera en zo


Acties:
  • 0 Henk 'm!

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
crisp schreef op zondag 14 maart 2010 @ 21:57:
Het klopt dat dat voorheen altijd undefined behaviour was en veel UA's inderdaad ook niet de onclick van het default submit-element triggerde bij een 'impliciete submit' (bijvoorbeeld dmv de enter-toets).

Echter is in HTML 5 dit gedrag wel gespecificeerd: http://www.w3.org/TR/html5/forms.html#implicit-submission
Hrm, dus eigenlijk mag ik het nog steeds niet in de onclick zetten, begrijp ik hieruit? (om oudere browsers te ondersteunen)

Het gedrag treedt trouwens in IE7 en in FF 3.6 op. IE7 doet nog niet aan HTML5 zover ik weet. Blijkbaar is dit dan één van de browsers die dit event wel triggerde...
Daarbij blijft evenwel het onsubmit event van het formulier toch het meest logische event om te gebruiken voor de meeste pre-submit zaken.
Mja, ik zit helaas met een framework dat het op deze manier genereert. :( Dat wordt wat customizen dan...

Fat Pizza's pizza, they are big and they are cheezy


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:46

crisp

Devver

Pixelated

JKVA schreef op maandag 15 maart 2010 @ 07:55:
[...]

Mja, ik zit helaas met een framework dat het op deze manier genereert. :( Dat wordt wat customizen dan...
Frameworks en best practices op het gebied van frontend gaan inderdaad vaak niet lekker samen...

Intentionally left blank

Pagina: 1