Исходная цель <input type = "hidden" >?

Мне интересно узнать исходную цель тега <input type="hidden">.

В настоящее время он часто используется вместе с JavaScript для хранения в нем переменных, которые отправляются на сервер и тому подобное.

Следовательно, <input type="hidden"> существовал до JavaScript, так в чем его первоначальная цель? Я могу только представить, как отправить значение с сервера клиенту, который (без изменений) отправлен обратно, чтобы сохранить свое состояние. Или я ошибаюсь в истории, и <input type="hidden"> всегда предполагалось использовать вместе с JavaScript?

Если возможно, пожалуйста, также дайте ссылки в своих ответах.

Ответ 1

Я могу только представить, как отправить значение с сервера клиенту, который (неизменен) отправлен обратно, чтобы поддерживать какое-то состояние.

Точно. Фактически, он по-прежнему используется для этой цели сегодня, потому что HTTP, как мы его знаем сегодня, по-прежнему по-прежнему является протоколом без сохранения.

Этот пример использования был сначала описан в HTML 3.2 (я удивлен, что в HTML 2.0 не было такого описания):

type=hidden
Эти поля не должны отображаться и предоставлять средства для хранения информации о состоянии в форме. Это будет передано обратно на сервер при отправке формы, используя пару имя/значение, определенную соответствующими атрибутами. Это работа для безгражданства HTTP. Другой подход - использовать HTTP "Cookies".

<input type=hidden name=customerid value="c2415-345-8563">

Хотя стоит упомянуть, что HTML 3.2 стал Рекомендацией W3C только после первоначального выпуска JavaScript, можно с уверенностью предположить, что скрытые поля в значительной степени всегда служили той же цели.

Ответ 2

Здесь я расскажу о простом примере реального сервера на стороне сервера, скажем, если записи зациклированы, и каждая запись имеет форму с кнопкой удаления, и вам нужно удалить определенную запись, поэтому здесь появляется поле hidden в action, иначе вы не получите ссылку на запись, которая будет удалена в этом случае, она будет id

Например

<?php
    if(isset($_POST['delete_action'])) {
        mysqli_query($connection, "DELETE FROM table_name 
                                   WHERE record_id = ".$_POST['row_to_be_deleted']);
                                   //Here is where hidden field value is used
    }

    while(condition) {
?>
    <span><?php echo 'Looped Record Name'; ?>
    <form method="post">
        <input type="hidden" name="row_to_be_deleted" value="<?php echo $record_id; ?>" />
        <input type="submit" name="delete_action" />
    </form>
<?php
    }
?>

Ответ 3

Короче говоря, первоначальная цель состояла в том, чтобы создать поле, которое будет отправлено с формой submit. Иногда приходилось хранить некоторую информацию в скрытом поле (например, идентификатор пользователя) и отправлять ее с помощью отправки формы.

Из спецификации 22 сентября 1995 г.

Элемент INPUT с `TYPE = HIDDEN 'представляет собой скрытое поле. Пользователь не взаимодействует с этим полем; вместо этого атрибут VALUE задает значение поля. Атрибуты NAME и VALUE: требуется.

Ответ 4

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

  • токены CSRF.

Подделка запроса на межсайтовый запрос (http://en.wikipedia.org/wiki/Cro...) - очень распространенная уязвимость сайта. Требование секретного токена, специфичного для пользователя, во всех представлениях формы предотвратит атаки CSRF, так как сайты атаки не могут угадать, что такое правильный токен, и любые заявки на формы, которые они выполняют от имени пользователя, всегда будут терпеть неудачу.

  • Сохранить состояние в многостраничных формах.

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

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

Ответ 5

Значения элементов формы, включая type = 'hidden', отправляются на сервер при отправке формы. Тип ввода = "скрытые" значения не отображаются на странице. Поддержание идентификаторов пользователей в скрытых полях, например, является одним из многих видов использования.

SO использует скрытое поле для щелчка вверх.

<input value="16293741" name="postId" type="hidden">

Используя это значение, серверная сторона script может сохранять upvote.