UPDATE From @BrendanEich ‏

@mplungjan onclick of submit just falls out of that being a button; form onsubmit is clearly better.


Which would be the reasons to ever use the onclick of a submit button to determine whether or not the form should be submitted?

I believe strongly that

  1. to execute something before submit and cancel the submit in case of error, the form's onsubmit event is the obvious place to put it
  2. If you use the onclick of a submit button and later decide to use type="image" the event handler will fail in many browsers
  3. if you change the submit to a button, you will have to add a submit to the onclick event handler too.

I am looking for strong reasons to prefer using a submit button's onclick event over the form's onsubmit.

UPDATE: Please note that I am personally well aware of many of the issues around form submission and validation.

For example that submitting by javascript will not trigger the onsubmit http://jsfiddle.net/mplungjan/3A4Ha/

<form onsubmit="alert('onSubmit called')">
    <input type="text" value="This will submit on enter but in IE the onclick is not triggered" style="width:100%"/><br/>
    <input type="submit" onclick="alert('Clicked')" />
</form><br />
<a href="#" onclick="alert('Submitting by script'); return false">Submit by script will not trigger onsubmit</a>

Also that IE will not trigger the onclick if you hit enter in the form in my fiddle


History:

Got into a discussion here

javascript onclick onsubmit

Edit
Report