Использование IE 7, JDK 1.6 и Sun Web server 7.
Внутри jsp формы мы имеем:
<input type="text" name="id" maxlength="20" />
<input ... type="submit" name="send" value="Send"/>
т.е. текстовое поле и кнопка «Отправить» (называемая «Отправить»).
и сервлет имеет:
if (request.getParameter("send") != null && request.getParameter("send").trim().length() > 0) { ... }
Используя Fiddler и IE, мы можем видеть, что следующее отправляется, когда мы заполняем текстовое поле id и нажимаем Enter:
ID = 123456
Однако, используя Fiddler и IE, мы можем видеть, что при заполнении текстового поля id и нажатии кнопки «Отправить» отправляется следующее:
= 123456 идентификатор пользователя и отправить = Отправить
Конечным результатом является то, что нажатие клавиши Enter эффективно ничего не делает.
На других страницах jsp, например, у нас есть:
<input type="text" name="id" maxlength="20" />
<input ... type="submit" name="submitId" value="Submit"/>
и сервлет имеет:
if (request.getParameter("submitId") != null && request.getParameter("submitId").trim().length() > 0) { ... }
Используя Fiddler и IE, мы видим, что для обоих случаев отправляется следующее:
ID = 123456 & submitId = Submit
Так что нам кажется, что это поведение проявляется только в IE для форм, в которых кнопка «Отправить» не называется «Отправить»?
Повторный запуск тестов в Firefox 3.6 показывает, что поведение является правильным и одинаковым для обоих случаев.
Есть предложения по корректной работе IE?
(Примечание: я искал схожую проблему в SO, но вопросы, связанные с этим, в основном связаны с ASP!).