Enter не отправляет форму в IE из-за скрытой кнопки - PullRequest
9 голосов
/ 23 августа 2010

У меня есть форма с двумя кнопками. Первый скрыт с использованием Javascript.

Когда я нажимаю ввод в текстовом поле в IE, форма не отправляется. Я предполагаю, что это потому, что он выбрал первую кнопку в качестве кнопки отправки по умолчанию, но поскольку эта кнопка скрыта, она не работает.

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

example autocomplete dropdown

Как отправить форму при входе в IE, не нарушая функции автозаполнения?

Ответы [ 4 ]

12 голосов
/ 08 января 2015

Попробуйте скрыть кнопку со следующим классом:

.hidden-element {
  width: 0px;
  height: 0px;
  position: absolute;
  top: -99999px;
  left: -99999px;
}
6 голосов
/ 23 августа 2010

У нас была похожая проблема несколько лет назад, и AFAIR, мы добавили дополнительную кнопку в начало формы, которая всегда выполняет действие отправки по умолчанию при нажатии Enter в IE.Эту кнопку можно «почти скрыть», предоставив ей прозрачное изображение 1x1.

5 голосов
/ 10 октября 2015

Я исправил непрозрачность 0, как:

<input type="submit" style="width: 0px; height: 0px; opacity: 0;" id="submitBtn" name="submitBtn">
0 голосов
/ 27 января 2012

Вы можете добавить дополнительную кнопку для сохранения функциональности кнопки отправки следующим образом:

<![CDATA[<!--[if IE]>]]>
                <input type="text" style="display: none;" disabled="disabled" size="1" />
            <![CDATA[<![endif]-->]]>
...