<input type="hidden">
<input> c атрибутом type=»hidden» скрыт со страницы. Разработчик может использовать его, например, для хранения ID товара, который в данный момент заказывается через форму, или другой сопутствующей информации. Пользователи никак не смогут увидеть это поле ввода через свой интерфейс.
Примечание: События input и change не применимы для скрытых полей ввода. Их нельзя взять в фокус даже с помощью JavaScript (например, используя hiddenInput.focus() ).
Значение
Для скрытых <input> атрибут value хранит непосредственно скрытые данные, которые затем можно отправить на сервер вместе с формой.
Предупреждение: Несмотря на то, что поле ввода скрыто от пользователей, оно по-прежнему видимо и доступно для редактирования через консоль разработчика. Не храните конфиденциальную информацию в input с типом hidden , она не будет как-либо защищена.
Дополнительные атрибуты
В дополнение к атрибутам, общим для всех input , скрытые поля ввода позволяют иначе использовать следующий атрибут.
Скрытые input , чьи атрибуты name установлены в _charset_ , не должны иметь атрибут value . При отправке формы он автоматически будет содержать значение с кодировкой символов, используемых в отправленной форме.
Использование скрытых input
Как упоминалось ранее, скрытые input можно использовать для хранение данных, которые пользователи не смогут увидеть или изменить через свой интерфейс. Посмотрим на примеры такого применения.
Отслеживание отредактированного контента
Одним из наиболее распространенных способов применения скрытых полей ввода является отслеживание того, какая именно запись базы данных должна быть обновлена после отправки формы. Типичный процесс редактирования выглядит так:
- Пользователь решает отредактировать контент, например, запись в своём блоге или какое-то описание товара. Он начинает с нажатия на кнопку «Редактировать».
- Контент для редактирования запрашивается из базы данных и подгружается в HTML форму, чтобы пользователь мог внести изменения.
- После правок, пользователь отправляет форму, и обновлённые данные отправляются обратно на сервер для обновления базы данных.
Идея в том, чтобы на втором шаге сохранить ID редактируемой записи в скрытый input . Когда пользователь отправит форму на третьем шаге, скрытый ID отправится на сервер вместе с новыми данными. Это позволит серверу точно знать, какая именно запись должна быть изменена.
Вы можете посмотреть пример такой логики в секции Примеры ниже.
Улучшение безопасности веб-сайта
Скрытые input также используются для хранения и отправки токенов безопасности. Основная идея заключается в том, что если пользователь заполняет некую конфиденциальную форму, например, в своём банковском аккаунте для перевода денег на другой счёт, ему будет выдан токен безопасности. Этот токен докажет, что отправитель действительно тот, за кого себя выдаёт, и что он использует нужную форму для отправки своего перевода.
Такой приём затрудняет для злоумышленников создание поддельных банковских веб-сайтов, чтобы обманом вынудить жертву перевести деньги не туда. Подобный вид атак называется подделкой межсайтовых запросов (CSRF); практически любой крупный серверный фреймворк использует токены безопасности для предотвращения атак этого типа.
Примечание: Хранение токенов безопасности в скрытых input не означает их сохранность, дополнительно портребуется, например, шифрование. Смысл скрытого input заключается лишь в хранении токена безопасности, связанного с данными, и его автоматической отправке вместе с формой на сервер.
Валидация
Скрытые input не участвуют в валидации.
Примеры
Посмотрим, как мы могли бы реализовать простую версию формы со скрытым input для хранения идентификатора редактируемой записи:
Также добавим немного простого CSS:
Сервер свяжет ID » postId » скрытого input с ID записи блога, чтобы знать, какую часть базы данных следует обновить. Никакого дополнительного клиентского кода для этого не потребуется.
Примечание: Вы также можете найти данный пример на GitHub (смотрите исходный код, а так же рабочее демо).
При отправке на сервер данные формы будут выглядеть примерно так:
Даже несмотря на то, что скрытый input не виден для пользователей при отправке формы, он содержит данные и они всё равно передаются на сервер.
Make input invisible through css?
I have a form where depending on the website’s brand one of two input fields should be visible at one given spot.
I figured I just put both input fields in the same container and then through my stylesheet set one of them to display:none; This does hide the field, but it still makes it take up space. I also tried setting the height and width to 0 or setting visibility to hidden or collapse but none of those worked.
Untill now all the branding things could be done with css style sheets so I would like to keep it that way. The solution should at least be supported in IE6 & up, Firefox 2 & up and Chrome (latest).
Как скрыть input в html

In this article, we will learn how to add a hidden input field into our form using HTML. A hidden control stores the data that is not visible to the user. It is used to send some information to the server which is not edited by the user. Normally, this hidden field usually contains the value which is common for all the users. The value must be recorded in the database.
A hidden input field often contains those value which needs to be updated on the database when the form is submitted.
Approach:
- We create an HTML Document that contains an <input> Tag.
- Use thetype attribute with the <input> tag.
- Set the type attribute to value “hidden“.
Syntax:
Example: In this code, we create a hidden field that contains a record of the user who belongs to the same country i.e India.
HTML <input type="hidden">
The <input type="hidden"> defines a hidden input field.
A hidden field lets web developers include data that cannot be seen or modified by users when a form is submitted.
A hidden field often stores what database record that needs to be updated when the form is submitted.
Note: While the value is not displayed to the user in the page’s content, it is visible (and can be edited) using any browser’s developer tools or "View Source" functionality. Do not use hidden inputs as a form of security!
Browser Support
The numbers in the table specify the first browser version that fully supports the element.