Форма для отправки или отправки кнопки на клике - PullRequest
13 голосов
/ 02 августа 2011

ОБНОВЛЕНИЕ С @ BrendanEich

@ mplungjan Нажатие кнопки "Отправить" просто выпадает из кнопки;Форма для отправки явно лучше.


По каким причинам можно когда-либо использовать нажатие кнопки отправки, чтобы определить, следует ли отправлять форму?

Iтвердо верьте в то, что

  1. для выполнения чего-либо перед отправкой и отмены отправки в случае ошибки, событие onsubmit формы является очевидным местом для помещения
  2. Если вы используете нажатие кнопкикнопку submit, а затем решите использовать type = "image", во многих браузерах произойдет сбой обработчика событий
  3. . Если вы измените кнопку submit на кнопку, вам придется добавить также обработчик события onclick.

Я ищу веские причины, чтобы предпочесть использовать событие onclick кнопки отправки, а не отправку формы.

ОБНОВЛЕНИЕ: Пожалуйста, помните, что мне лично хорошо известны многие проблемы, связанные с формой.отправка и проверка.
Например, что отправка с помощью 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 не будетнажми на кнопку мыши, если нажмешь ввод в форме в моей скрипке


История:

Попал в обсуждение здесь

Кнопка html не активируется без отключения

Мне очень не нравится использовать кнопку «Отправить» для НИЧЕГО из-за много 1 лет просмотраэто не работает в ряде браузеров, в основном в старых версиях IE.Я перечислил несколько очевидных причин, но я уверен, что они не убедят закоренелого пользователя.

Может ли сообщество SO помочь мне прижать его к стене, как они прикололи w3schools?Также не стесняйтесь комментировать, как я могу сформулировать этот вопрос приемлемым образом.


1: со времен NS2.x и IE3.02

1 Ответ

13 голосов
/ 02 августа 2011

Форма при отправке является более правильным подходом по той простой причине, что форму также можно отправить с помощью клавиши <ENTER>, а не просто нажав кнопку отправки.

...