Атрибут target тега <form>
Описание
Атрибут target определяет, где будет открыт ответ сервера после отправки формы. Работает аналогично атрибуту target в теге <a>.
<form action="/submit" method="post" target="_blank">
<input type="text" name="feedback">
<button type="submit">Отправить (откроется в новой вкладке)</button>
</form>
Допустимые значения:
| Значение | Описание | Применение |
|---|---|---|
_blank |
Новое окно/вкладка | Для открытия результатов в новом контексте |
_self |
Текущее окно (по умолчанию) | Обычная отправка формы |
_parent |
Родительский фрейм | Для форм во фреймах |
_top |
Полное окно браузера | Выход из всех фреймов |
| Имя фрейма | Указанный фрейм/iframe | Точное указание цели |
Практические примеры:
<!-- Открыть в новом окне -->
<form target="_blank">...</form>
<!-- Отправить в указанный iframe -->
<iframe name="resultFrame"></iframe>
<form target="resultFrame">...</form>
<!-- Отправить в родительский фрейм -->
<form target="_parent">...</form>
Особенности работы:
- Для
_blankсовременные браузеры открывают новую вкладку - Можно комбинировать с
rel="noopener"для безопасности - При использовании с AJAX игнорируется
- Для файловых загрузок может использоваться скрытый iframe
Рекомендации по использованию:
- Используйте
_blankдля сохранения текущей страницы - Избегайте
_blankдля форм входа (может блокироваться) - Для iframe указывайте конкретные имена фреймов
- В SPA-приложениях обычно не требуется
Пример с обработкой в iframe:
<iframe name="form-response" style="display:none"></iframe>
<form target="form-response">
<input type="text" name="data">
<button type="submit">Отправить</button>
</form>
<script>
window.frames['form-response'].onload = function() {
const response = this.document.body.innerHTML;
console.log('Ответ сервера:', response);
};
</script>
Ограничения:
- Не работает с AJAX-отправкой форм
- Поведение может отличаться в разных браузерах
- Для сложных сценариев лучше использовать JavaScript
Примечание: В современных веб-приложениях атрибут target для форм используется редко, так как большинство разработчиков предпочитают обрабатывать отправку форм через JavaScript с AJAX. Однако он остается полезным для простых случаев и legacy-приложений.