UPDATE Из @BrendanEich
@mplungjan onclick submit просто выпадает из этой кнопки; форма onsubmit явно лучше.
Какими были бы причины использовать кнопку onclick кнопки отправки, чтобы определить, следует ли отправлять форму?
Я уверен, что
- выполнить что-то перед отправкой и отменить отправку в случае ошибки, форма onsubmit-событие является очевидным местом для его размещения.
- Если вы используете onclick кнопки submit, а затем решили использовать type = "image", обработчик события будет терпеть неудачу во многих браузерах
- если вы измените отправку на кнопку, вам также придется добавить submit в обработчик события onclick.
Я ищу сильные причины предпочесть использовать кнопку отправки onclick по форме onsubmit.
ОБНОВЛЕНИЕ: Пожалуйста, не то, что я лично хорошо осведомлен о многих проблемах, связанных с отправкой и проверкой формы.
Например, если представление javascript не будет инициировать 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>
Кроме того, IE не будет запускать onclick, если вы нажмете enter в форме в моей скрипке
История:
Пришла в обсуждение здесь
кнопка html не доступна без отключения
Я испытываю сильную неприязнь к тому, что я использовал кнопку отправки для НИЧЕГО из-за многих 1 лет, когда это не работает в ряде браузеров, в основном старше версия IE. Я перечислил некоторые из очевидных причин, но я уверен, что они не убедят закаленного пользователя.
Может ли сообщество SO помочь мне прибить это к стене, как будто они прибили w3schools? Также не стесняйтесь давать комментарии относительно того, как я могу сформулировать этот вопрос приемлемым образом.
1: со времен NS2.x и IE3.02