Почему добавление скрытого текстового поля в форму останавливает обновление IE при вводе - PullRequest
0 голосов
/ 23 августа 2010

Я искал исправление, чтобы IE не обновлял страницу вместо отправки моей однострочной формы, когда пользователь нажимает клавишу ввода вместо нажатия кнопки go.

Я нашел это решение, которое хорошо работает, но мне было интересно, кто-нибудь может объяснить, почему оно работает?

Решение, которое я использовал, заключается в добавлении скрытого ввода текста в теги формы, например

`<form name="SearchForm" id="SearchForm" method="get" action="">

/*This is the hidden text input*/
<input type="text" style="visibility:hidden;display:none;" name="ieSearchEnter">

</input>
<fieldset>
<span><input type="text" name="Search" id="Search"/></span>
<div class="field actions">
<input type="submit" name="Go" id="Go" class="submit" value="Go"/>
</div>

</fieldset>
</form>`

который я нашел здесь .

Спасибо!

1 Ответ

0 голосов
/ 30 августа 2010

Вы действительно устанавливаете значение ACTION в пустую строку, или вы просто сделали это для своего примера кода?

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

Вот простая тестовая страница: http://www.enhanceie.com/sandbox/simpleform.asp. Когда вы нажмете клавишу ввода, вы увидите, что URL обновляется, чтобы передать значение пользователя.

IIRCв обработке форм IE есть код, который говорит, что если у вас есть форма, содержащая одиночное тестовое поле, то нажатие клавиши ENTER отправит эту форму.В качестве обходного пути вы добавили дополнительное текстовое поле, чтобы оптимизация не применялась.

Я думаю, что, возможно, ваш серверный код ТРЕБУЕТ, что отправка формы содержит «Go = Go», или игнорирует отправленныезначение (Search = Whatevertheuserhadtyped) и просто повторно отображает форму.Если вы измените серверный скрипт так, что он не требует Go = Go, то ваша проблема должна исчезнуть.

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