Как определить, какая кнопка отправки была использована? - PullRequest
4 голосов
/ 21 января 2009

Можно ли определить, какая кнопка отправки использовалась? У меня есть форма подтверждения с 2 кнопками отправки. Первый подтвердит порядок, выполнит несколько задач с БД, затем перенаправит. Вторая кнопка «Отмена» будет просто перенаправлять на ту же страницу, без выполнения каких-либо задач с БД.

Возможно ли в сервлете, предпочтительно через объект запроса, определить, какая кнопка отправки использовалась? Я бы предпочел не зависеть от Javascript, поскольку это довольно просто, но прибегну к нему, если это будет единственная возможность.

Спасибо.

Ответы [ 4 ]

10 голосов
/ 21 января 2009
<button name="someName" value="someValue" type="submit">Submit</button>
<button name="otherName" value="otherValue" type="submit">Cancel</button>

Вы будете иметь someName=someValue или otherName=otherValue в ваших данных запроса

8 голосов
/ 21 января 2009

Конечно, просто присвойте каждой из ваших submit кнопок атрибут name, и тот, который был нажат, будет отображаться в представленных переменных:

<input type="submit" name="doConfirm" value="Confirm"  />
<input type="submit" name="doCancel"  value="Cancel"  />
1 голос
/ 21 января 2009

Как уже упоминали другие, две кнопки с разными именами позволят вам достичь цели. Однако есть некоторые потенциальные проблемы, о которых следует знать, когда вы полагаетесь на это в своем приложении. Я думаю, что они специфичны для Internet Explorer, поэтому, если вам не нужно поддерживать более старые версии IE, вы можете игнорировать их. Оба включают поведение отправленной формы, когда пользователь нажимает ввод, когда один из элементов формы имеет фокус. Эта статья использует ASP для демонстрации проблем, но HTML-сторона важна.

0 голосов
/ 21 января 2009

При использовании нескольких кнопок отправки мне нравится использовать javascript, чтобы установить значение скрытого поля формы, которое описывает действие, которое должно произойти.

Например:

<input type="hidden" name="action" id="form-action" />
<input type="submit" value="Save" onClick="document.getElementById('form-action').value='save'" />
<input type="submit" value="Copy" onClick="document.getElementById('form-action').value='copy'" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...