Комбинация JSP/сервлет не отправляет форму при вводе, если только элемент формы является кнопкой отправки

Это продолжение моего предыдущего вопроса:

Комбинация JSP/сервлет/IE не отправляет детали формы при входе

Внутри формы имеем:

<input ... type="submit" name="confirm" value="Confirm"/>

В этой форме нет полей ввода. Эта форма появляется в конце рабочего процесса и, по сути, является проверкой для продолжения.

Эта форма не отправляется ни в IE, ни в Firefox при нажатии клавиши Enter. Он отлично работает, если нажата кнопка «Подтвердить».

Следуя ответу на мой предыдущий вопрос, я попытался добавить фиктивные поля, такие как:

<input type="hidden" />

or

<input type="text" style="display: none;" />

но они не имеют значения.

По разным причинам мы бы предпочли не использовать Javascript.

Любые предложения, чтобы получить клавишу Enter для отправки?


person rbrayb    schedule 04.03.2010    source источник


Ответы (1)


К сожалению, у вас должен быть хотя бы один фокусируемый элемент ввода в форме, чтобы заставить его работать, и только тогда, когда ввод имеет фокус. Если у вас нет элементов ввода, нет другого способа обойти это, кроме как позволить Javascript прослушивать клавишу enter в теле.

<body onkeypress="if (event.keyCode == 13) document.formname.confirm.click();">

Где formname — значение атрибута name родительского элемента <form>.

Обратите внимание, что я использовал document.formname.confirm.click() вместо document.formname.submit(), потому что иначе IE не отправил бы пару имя=значение кнопки на сервер.

Единственным способом без Javascript было бы позволить пользователю перейти tab к кнопке, а затем нажать enter. Кстати, все это независимо от используемого браузера и, следовательно, не зависит от IE.

person BalusC    schedule 04.03.2010