Почему формы не отправляются, если есть более одного безымянного ввода? - PullRequest
5 голосов
/ 11 декабря 2011
<form method="POST" action="">
    <input type="text" />
    <input type="text" />
</form>

( JSFiddle )

Нажмите клавишу ввода на input. Затем удалите один из input и нажмите его снова. Когда у нас есть два входа внутри формы, форма не отправляется (тогда нам нужна кнопка). Почему это так?

Ответы [ 3 ]

7 голосов
/ 11 декабря 2011

Стандартное поведение HTML-форм с одним вводом - отправка при вводе. Как только вы добавите второй ввод, нажатие клавиши ввода больше не будет отправлять форму. Наличие или отсутствие имен не имеет к этому никакого отношения.

3 голосов
/ 11 декабря 2011

Первоначальная идея заключалась в том, что очень простые формы, обычно состоящие только из поля ввода текста, например, для поиска, должны быть простыми и быстрыми: пользователь просто набирает слово для поиска и нажимает клавишу Enter.Элементы управления других типов, такие как флажки, не влияют на это.Практически все браузеры реализовали эту идею.

Но, согласно старой идее, если есть несколько текстовых полей ввода, существует слишком большой риск преждевременной отправки формы: пользователь нажимает Enter, ожидая перехода к следующей.поле, или, может быть, просто случайно.

Тем не менее, IE представил (в IE 4) функцию, которая заставляет Enter в поле ввода текста отправлять форму, даже если форма содержит несколько таких элементов.Позже другие браузеры последовали его примеру, и в настоящее время это (неправильное?) Поведение представляется «стандартным». Эта функция, как утверждается, является улучшением удобства использования, а в некоторых особых случаях это действительно так.Чаще это риск, и поэтому страницы часто пытаются использовать сценарии на стороне клиента, чтобы предотвратить его.

Однако, по крайней мере, в большинстве современных браузеров это происходит только тогда, когда форма имеет кнопку отправки.Но если вы опустите кнопку «Отправить», пользователи будут озадачены, так как в большинстве форм есть кнопка или кнопки «Отправить».

0 голосов
/ 31 августа 2013

Если вы не поместите кнопку или не введете [type = submit] где-то в форме. Кнопка может быть обернута внутри видимости: скрытая css, если вы не хотите, чтобы она появлялась.

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