31
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
- 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
- If you use the onclick of a submit button and later decide to use type="image" the event handler will fail in many browsers
- 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