Почему я не могу отправить эту форму? - PullRequest
0 голосов
/ 25 мая 2018

Может кто-нибудь объяснить мне, почему событие submit никогда не срабатывает при нажатии клавиши enter на входе?

<form>
  <input type="text" placeholder="press enter here"/>
  <button disabled>disabled</button>
  <button type="submit">submit</button>
</form>

Нажатие на кнопку отправки работает хорошо.Если я удаляю отключенную кнопку, она работает хорошо.

Проверено в:
- Chrome версии 66.0.3359.181 (Build officiel) (64 бита)
- Chrome версии 68.0.3439.0 (Build officiel) канарейка(64 бита)

Первая кнопка отключена, но не вторая, которая имеет type="submit".

Это известная проблема?Спасибо,

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Это поведение является намеренным.Соответствующей частью стандарта HTML5 является §4.10.21.2 «Неявная отправка» :

Кнопка по умолчанию для элемента form - это первая кнопка отправки в древовидной структуре, владельцем формы которой является владелец формы.является этим элементом формы.

Если пользовательский агент поддерживает разрешение пользователю неявно отправлять форму (например, на некоторых платформах нажатие клавиши «ввод», когда текстовый элемент управления сфокусирован, неявно передает форму), тогда выполнениепоэтому для формы, чья кнопка по умолчанию имеет поведение активации и не отключена, пользовательский агент должен вызвать событие click для этой кнопки по умолчанию.

Первая кнопка отправки в формевсегда рассматривается как кнопка по умолчанию, даже если она отключена.Отключение этого не позволяет использовать его для отправки формы.

0 голосов
/ 25 мая 2018

Попробуйте установить для первой кнопки значение type = "button"

<form>
    <input type="text" placeholder="press enter here" />
    <button type="button" disabled>disabled</button>
    <button type="submit">submit</button>
</form>

Если вы не собираетесь использовать первую кнопку для отправки формы, ее не нужно объявлять каккнопка отправки.Если вы не объявляете это, форма, вероятно, думает, что это должна быть кнопка, которая отправляет форму.(Потому что это первая кнопка, которую браузер видит при разборе страницы формы )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...