Google Chrome отправляет форму, даже если нет кнопки ОТПРАВИТЬ - PullRequest
6 голосов
/ 04 августа 2010

Эта ошибка / функция появилась на одной из моих страниц при просмотре в Google Chrome , поэтому я написал тестовую страницу, которая выглядит следующим образом

<body>
 <form action="loginhandler.php">
      <input type="text" id="name">
      <input type="text" id="lastname">
      <input type="button" value="Login">
 </form>
</body>

Здесь вы можете увидеть,тип ввода НЕ относится к типу submit.Так что если вы нажмете клавишу ВВОД на IE, Firefox, Opera, ничего не произойдет, и это ожидаемое поведение.Но если вы нажмете Enter на Chrome, он отправляет независимо от того, является ли тип ввода отправки или нет.

Мой вопрос, это функция по умолчанию / ошибка в Chrome или я что-то здесь не так делаю.

Ответы [ 3 ]

7 голосов
/ 04 августа 2010

Цитировать раздел 4.10.21.2 спецификации HTML5:

"Если в форме нет кнопки отправки, тогда механизм неявного представления нужно просто отправить элемент формы из сам элемент формы. "сам элемент формы."

Поэтому я считаю, что поведение Chrome правильное, хотя я думаю, что другие браузеры тоже это делают. Вы можете перехватить / заблокировать / обработать отправку формы, прослушав событие "submit" (например, чтобы заблокировать его). BlockquoteBlockquote сам элемент формы. "

3 голосов
/ 04 августа 2010

Даже не Chrome, большинство браузеров отправляют, когда вы нажимаете ввод (даже если нет кнопки отправки), когда курсор находится на входе.

0 голосов
/ 14 декабря 2010

У меня противоположная проблема. Я использую пользовательский js-элемент для своей формы, и когда я использую style='dispay:none;' для кнопки отправки, Chrome не отправляет форму при вводе, хотя Firefox делает: (

...