<input> 要素の hidden 型は、
フォームの送信時にユーザーが見たり変更したりすることができないデータをウェブ開発者が含めることができます
。例えば、現在注文中又は編集中の ID や、一意のセキュリティトークンなどに利用
できます。隠し入力欄はページの表示で完全に非表示になり、ページの中で表示させる方法はありません。
<input> 要素の value 属性は、フォームをサーバーに送信する時に含めたい隠しデータを含みます
。これは特に、ユーザーインターフェイスを通じで編集したり確認したりすることはできませんが、ブラウザーの開発者ツールから値を編集することはできます
。警告: ページのコンテンツ内では値がユーザーに表示されませんが、ブラウザーの開発者ツールや「ソースを表示」機能を使用して、見たり編集したりすることができます。
hidden の入力欄をセキュリティの形として当てにしないでください
。
name
入力コントロールの名前を指定する文字列です。この名前はフォームデータが送信される時に、コントロールの値と共に送信されます。name は(厳密にはそうではありませんが)必須の属性と考えてください。入力欄に name が指定されていなかった場合や name が空欄だった場合、その入力欄の値はフォームと一緒に送信されません。(無効なコントロール、チェックされていないラジオボタン、チェックされていないチェックボックス、リセットボタンも送信されません。)
特殊な場合が 2 つあります。
charset : 要素の hidden 型として使用された場合、
入力欄の value には自動的に、フォームを送信するのに使用される文字エンコーディングがユーザーエージェントによって設定
されます。
isindex: 歴史的な理由で、isindex という名前は許可されていません。
name="_charset_" と指定すると,フォームデータのエンコードの種類 を送信します。
文字エンコーディング名の送信
この部品タイプでは、name属性に charset を指定すると、部品の値に文字エンコーディング名がセットされます。この指定を行う場合は、value属性を省略しなければなりません。
<input type="hidden" name="_charset_">
上記のように指定しておくと、フォームの送信時に文字エンコーディング名が送信されるようになります。
例えば、
Shift_JISで作られたページからフォームを送信すると、_charset_=shift_jis といった形でエンコーディング名が送信
されます。
文字エンコーディング名を送信した例
動作確認のため、送信先としてHTMLファイル(現在のページ)を指定しています。
送信後のアドレスバーにて、文字エンコーディング名を確認することができます。(このページはUTF-8で作成されているため、_charset_=UTF-8 と表示されます
)<form method="get" action="input_hidden.html"> <input type="hidden" name="_charset_"> <p><input type="submit" value="送信する"></p> </form>
-
name="_charset_"
とするとwebページのエンコーディングに依存する
感想
hiddenはブラウザに表示させないタイプの種類だった。
特異なnameの場合は違った動作をする。