Мне интересно узнать о первоначальной цели <input type="hidden">
тега.
В настоящее время он часто используется вместе с JavaScript для хранения в нем переменных, которые отправляются на сервер и тому подобного.
- HTML 2.0 был выпущен в ноябре 1995 года и уже содержал спецификацию для input type = "hidden"
- JavaScript был выпущен в марте 1996 г.
Таким образом, JavaScript <input type="hidden">
существовал до того , каково было его первоначальное предназначение? Я могу только представить себе отправку значения с сервера клиенту, которое (без изменений) отправляется обратно для поддержания своего рода состояния. Или я ошибаюсь в истории этого и <input type="hidden">
всегда должен был использоваться вместе с JavaScript?
Если возможно, дайте также ссылки в своих ответах.
javascript
html
history
Уооо
источник
источник
Ответы:
Точно. Фактически, он все еще используется для этой цели сегодня, потому что HTTP, каким мы его знаем сегодня, по-прежнему, по крайней мере, в основном, протокол без сохранения состояния.
Этот вариант использования был впервые описан в HTML 3.2 (я удивлен, что HTML 2.0 не включал такого описания):
Хотя стоит упомянуть, что HTML 3.2 стал рекомендацией W3C только после первоначального выпуска JavaScript, можно с уверенностью предположить, что скрытые поля почти всегда служили одной и той же цели.
источник
Я приведу здесь простой пример реального мира на стороне сервера, скажем, если записи зациклены и каждая запись имеет форму с кнопкой удаления, и вам нужно удалить конкретную запись, так что вот
hidden
поле в действии, иначе вы выиграете ' t получить ссылку на удаляемую запись, в этом случае она будетid
Например
источник
Короче говоря, первоначальная цель заключалась в создании поля, которое будет отправлено вместе с отправкой формы. Иногда требовалось сохранить некоторую информацию в скрытом поле (например, идентификатор пользователя) и отправить ее с помощью формы submit.
Из спецификации HTML от 22 сентября 1995 г.
источник
original purpose was to make a field which will be submitted *after* form's submit
неоднозначна. Это может быть истолковано как: «после того , как форма делается размещения его данные, то скрытое поле будет представлено (в таинственном месте)». Отсюда мой комментарий выше.Значения элементов формы, включая type = 'hidden', отправляются на сервер при публикации формы. Значения input type = "hidden" не отображаются на странице. Например, сохранение идентификаторов пользователей в скрытых полях - одно из многих применений.
SO использует скрытое поле для щелчка вверх.
Используя это значение, серверный скрипт может сохранить голосование.
источник
в основном скрытые поля будут более полезными и преимуществами использования с многошаговой формой. мы можем использовать скрытые поля, чтобы передавать информацию об одном шаге на следующий шаг, используя скрытый, и продолжать пересылку до конечного шага.
Подделка межсайтовых запросов - очень распространенная уязвимость веб-сайтов. Требование секретного, специфичного для пользователя токена во всех представлениях формы предотвратит CSRF-атаки, поскольку атакующие сайты не могут угадать, какой является правильный токен, и любая отправка формы, которую они выполняют от имени пользователя, всегда будет неудачной.
Если вам нужно сохранить в многостраничной форме, на каком шаге находится пользователь, используйте скрытые поля ввода. Пользователю не нужно видеть эту информацию, поэтому скройте ее в скрытом поле ввода.
Общее правило: используйте это поле для хранения всего, что пользователю не нужно видеть, но что вы хотите отправить на сервер при отправке формы.
источник