Передача значений Web-серверу с помощью скрытых полей
Скрытое (hidden) поле представляет собой элемент формы, который, как и предполагает его название, невидим для человека, заполняющего форму. Скрытые поля можно использовать для передачи Web-серверу дополнительных пар имя/значение помимо данных, введенных посетителем сайта. Например, следующий HTML-код приводит к тому, что Web-браузер визуализирует форму, показанную на рис. 3.20.
<form name="ExampleForm" action="http://NVBizNet2.com/_scripts/_pl/FrmScrpt.CGI" method="POST"enctype="application/x-www-form-urlencoded">Имя пользователя:<input type="text" name="Username" id="UN" size="20" /><br/>
Пароль:
<input type="password" name="Password" id="PW" size="20" /><br/><p><input type="button" value="Отправить" onclick="validateAndSubmit(ExampleForm)"/><input type="button" value="Сбросить" onclick="ResetForm(ExampleForm)" /></p><input type="hidden" name="LoginAttempts" value="0"/><input type="hidden" name="LoginDateTime"/><input type="hidden" name="ExampleFor" value="HTML & Web Design Tips & Techniques"/></form>

Рис. 3.20. Форма ввода имени пользователя и пароля
Обратите внимание, что в приведенном примере атрибуты type трех полей ввода в конце описания формы содержат значения "hidden" и не отображаются на экране (как показано на рисунке). Несмотря на то что Web-браузер не визуализирует скрытые поля, он передает серверу пары имя/значение для всех полей, как видимых, так и скрытых (см. рис. 3.21).
ПРАКТИКУМ
Значение скрытого поля можно задать, соответствующим образом установив атрибут value в дескрипторе <input>, как показано на примере первого и третьего скрытых полей в следующем коде:
<input type="hidden" name="LoginAttempts" value="0"/><input type="hidden" name="ExampleFor" value="HTML & Web Design Tips & Techniques"/>

Рис. 3.21. Результаты заполнения формы, переданные Web-серверу после ввода "Konrad" в поле Username и "King" в поле Password
Независимо от того, были присвоены скрытым полям начальные значения или нет, скрытым полям можно присваивать значения в JavaScript-сценариях. Например, функция validateAndSubmit(), выполняемая в приведенном выше примере при нажатии кнопки Submit, включает следующие строки:
ExampleForm.LoginAttempts.value++;ExampleForm. LoginDateTime.value = new Date() ;
Первая строка увеличивает на 1 значение скрытого поля LoginAttempts, a вторая записывает в скрытое поле LoginDateTime текущее значение даты и времени.