Webシステム用管理者画面作成マニュアル デザイン/HTML/CSS/JavaScript集
HTML

フォームの構成と要素・属性 forminputselectoptiontextareaその他

こちらではデザイン的なものではなく、管理画面内で最も多用するフォームの構成と要素・属性とその例を紹介します。初めてフォームを書く方にもわかるように書きました。⇒フォームの基本となる部品はこちら
nameなどは、プログラマの方が後から追加記述する場合が多いのですが、HTMLコーディングの時点で入れておくと、後の作業の効率があがります。
が、しかし、やりすぎは厳禁です。余計な記述は後の作業に差し支える場合があります。プロジェクトを進める際、プログラマとどこまで記述するか打ち合わせをしておくといいでしょう。
私は、特に指示がない場合は、Dreamweaverデフォルトで入るnameをそのまま入れておきます(例: name="textfield2")。
name=""と、空を入れておくのもいいのですが、空だと上書きする際に、書き直す部分をダブルクリックすることができないので、コピペに若干手間取ります。 しかし、このあたりは好みです。空を入れておくほうが、記述抜けがないか検索してチェックするのが楽というメリットもあります(空タグを検索すればいいので)。
結果、プログラマと相談しておくのがベストです(どっちでもいいよといってくれる方が多いのですが、空と空でないものに双方こんなメリット・デメリットがあるよと説明して、効率アップのためにもキッチリいきましょう。)

※属性:action・inputなど  要素:action・inputなどの以下のtext・select・actionなど
<form>の属性 表示サンプル ソース 備考
action
例1:<form method="get" action="aaa.cgi">

例2:<form method="get" action="/~kanri-gamen/index.html">
<form>で送信したデータを処理するファイルを指定します。
HTMLファイルを指定し、HTMLだけで動作確認することもできます(但しサーバー上ではgetでしか動きません、ローカルではpostでも動きます。サンプルはgetになっています)。⇒HTMLのみでの動作確認例
method
例1:<form action="/~kanri-gamen/index.html" method="get">

例2:<form action="/~kanri-gamen/index.html" method="post">
<form>データの送信方法の指定します。
get:URLに送信するデータがくっついた状態で送信されます。送信するURLの字数制限がある+送信データが生で見れてしまいます。検索などの常に一定の結果を伴うものはget、新しいデータの送信・登録はpostというのが原則です。
ちなみにMacのローカルでHTMLの動作確認をする場合、getにしないと、指定したHTMLファイルへ移動することができません。
post:フォームデータのみ送信します。URLには処理する(HTMLファイルの場合は移動先の)ファイル名のみ表示されます。左記のボタンは正しく移動しませんが、URLのみ参考にごらんください。
name   例1:<form action="/~kanri-gamen/index.html" method="get" name="aaa" > 不要です。オーサリングソフトで自動で入った場合、削除しておきましょう。但し、プログラマから指示があった場合は、記述しますが・・・、おそらく「不要」といわれるでしょう。
target   例1:<form method="POST" action="example01c.html" target="bottom">
コメント :<input type="text" name="name" size="50">
<input type="submit" value="送信する">
</form>
送信後表示される画面のターゲットを指定します。⇒サンプル
▲UP
<input>の属性 表示サンプル ソース 備考
type text:
password:
radio:
checbox:
submit:
reset:
button:
image:
file:
text:<input type="password" name="textfield2">
password:<input name="radiobutton" type="radio" value="radiobutton">
radio:<input type="submit" name="Submit2" value="送信">
checbox:<input type="checkbox" name="checkbox" value="checkbox">
submit:<input type="submit" name="Submit2" value="送信">
reset:<input type="reset" name="Submit22" value="リセット">
button:<input type="button" name="Submit23" value="ボタン">
image:<input type="image" name="imageField" src="/~kanri-gamen/images/menu_link.gif">
file:<input type="file" name="file">
hidden:<input type="hidden" name="usr" value="aaa">
text:1行のテキスト入力フィールド
password:パスワード入力フィールド。表示はすべて*になります。
radio:ラジオボタン(選択肢から1つのみ選択する。)
checbox:チェックボックス(選択肢から複数選択する。オン・オフ的使用。)
submit:送信ボタン(<form> タグの action属性で指定したアクションが呼び出されます。)
reset:リセットボタン
button:汎用ボタン(ボタンを押した時にJavaScriptなどを起動する際によく用いられます。フォームのデータを送信する場合はsubmitを使います。)
image:イメージ画像のボタン(<form> タグの action属性で指定したアクションが呼び出されます。)
file:送信するファイル指定フィールド
hidden:画面上には表示しないデータ(フォーム送信時にはこのデータも送信される。)
name   例1:<input type="text" name="">
<input type="checkbox" name="" value="checkbox">
<input type="reset" name="" value="リセット">

例2:<input type="text" name="hogehoge">
<input type="checkbox" name="hogehoge" value="checkbox">
<input type="reset" name="hogehoge" value="リセット">
入力フィールドに入力・選択されたデータと共に<form>で指定したプログラムに送信されます。<form>につけるnameとは重要度断然が違います。これが正しく入れられていないとデータが正しく登録されたりしません。但し、HTMLコーディングの段階では入れる必要はありません(name=""とでもしておきましょう)。プログラマが後ほど値(文字列)を入れるか、仕様書等で何を入れるか指示される場合があると思います。
オーサリングソフトでは勝手に値が入れられていきます。わざわざ消す必要はありませんが、後からnameを検索して""に値を入れやすくしておくため、空にしておくか、英数字の同じ文字列の仮値を入れておきます(値だけをダブルクリックして簡単に選択&置換えできるように)。
value text:
password:
radio:
checbox:
submit:
reset:
button:
text:<input name="textfield3" type="text" value="valueの値" size="20">
password:<input name="textfield23" type="password" value="valueの値" size="10">
radio:<input name="radiobutton" type="radio" value="valueの値">
checbox:<input type="checkbox" name="checkbox2" value="valueの値">
submit:<input type="submit" name="Submit24" value="valueの値">
reset:<input type="reset" name="Submit222" value="valueの値">
button:<input type="button" name="Submit232" value="valueの値">
フォームによってvalueの扱いが変わります。

text・password:入力フィールドに初期値として表示されます。但し、パスワードフォームの場合は「・・・・・・」で表示されます。
radio・checbox:選択された選択肢の値(文字列)がサーバーに送信されます。
submit・reset・button:ボタンのラベルとして表示されます。

※file:選択するファイル名をデフォルト設定します。ファイル選択ウィンドウが開く際、ファイルが選択された状態になります・・・と書かれているサイトがほとんどですが、とほほをみると「セキュリティのために、初期値を設定したり、スクリプトで値を操作することはできません。」と書かれています。fileフォームにvalueを入れてみると、オーサリングソフト上は初期値が入っているように見えるのですが、ブラウザでプレビューすると初期値は入りません。
size text:
password:
textarea:
file:
text:<input name="textfield4" type="text" size="2">
password:<input name="textfield232" type="password" size="10">
textarea:<textarea name="textfield33" cols="15"></textarea>
file:<input name="file2" type="file" size="5">
各フォームのサイズ(横幅)を指定します。入力フィールドの長さをバイト単位設定できます。
最初、全角1文字=2バイトかな・・・と思っていたのですが、どうも違う様子。size="10"と設定すると全角5文字のはずが、MSPゴシック(MSゴシックでも同様)で「123456」入る。「7」もほぼ入る。謎だ。設定バイト数が増えれば増えるほど、この誤差が大きくなる。なので、プレビューしながら調整する。入れたい全角文字+1〜2文字入るくらいが一番入れやすく、きれい。必要以上に長すぎるフィールド・短すぎるフィールドは入力する内容が「ここで正しいのか?」と迷う可能性がある。
左記のフォームの部品はCSSを使わずデフォルトでサイズ設定があるフォームです。
フォーム類はほとんど スタイルシートで幅を設定することも可能です(CSSのフォームデザインの項参照)。
maxlengh text:
password:
file:
text:<input name="textfield5" type="text" size="20" maxlength="5">
password:<input name="textfield22" type="password" size="10" maxlength="3">
file:<input name="file3" type="file" size="17" maxlength="10">
typeの属性がtext・password・fileの場合、入力可能な最大文字数が設定できます。が、fileの場合、ブラウザで見ても何文字でも入るんですよね・・・・。なぜでしょうね。
checked radio:
checbox:
radio:<input name="radiobutton" type="radio" value="valueの値" checked>
checbox:<input name="checkbox22" type="checkbox" value="valueの値" checked>
<input name="checkbox222" type="checkbox" value="valueの値" checked>
<input name="checkbox2222" type="checkbox" value="valueの値" checked>
typeの属性がcheckbox・radioの場合に、checkedを記述したフォームが既に選択されている状態にします。
▲UP
<select>の属性 表示サンプル ソース 備考
name 例1:<select name="sample_select">
<option>1</option>
<option>2</option>
</select>
入力フィールドに入力・選択されたデータと共に<form>で指定したプログラムに送信されます。<input>のnameと同様の扱いです。
size 例1:<select name="select" size="5">
<option>1</option>
<option>2</option>
</select>
行数指定をします。行数指定することで、自動的にプルダウンメニューではなくなります。また、行数より選択肢が多い場合は左にスクロールバーが表示されます。
multiple 例1:<select name="select" size="5" multiple>
<option>1</option>
<option>2</option>
</select>
複数選択できるようになります(Windows の場合、Ctrl キーや Shift キーを押しながらマウスでクリック)。
optgroup 例1:<select name="aaa">
<optgroup label="グループ1" class="optgroup_color">
<option label="あああ" value="aaa">あああ</option>
<option label="いいい" value="iii">いいい</option>
<option label="ううう" value="uuu">ううう</option>
</optgroup>
<optgroup label="グループ2">
<option label="かかか" value="kakaka">かかか</option>
<option label="ききき" value="kikiki">ききき</option>
</optgroup>
</select>
セレクトボックスの選択肢(<option>〜<option>)をグループ化します。グループの見出しは選択できません。また、グループごとにCSSを適用することも可能です。
<option>の属性 表示サンプル ソース 備考
selected 例1:<select name="select6" size="5" multiple>
<option>1</option>
<option selected>2</option>
<option selected>3</option>
</select>
selectに使用します。デフォルトで選択する項目を指定します。
value 例1:<select name="select7">
<option value="aaa">1</option>
<option value="bbb">2</option>
<option value="ccc">3</option>
</select>
selectに使用します。この項目が選択された場合、このデータと共に<form>で指定したプログラムに送信されます。
▲UP
<textarea>の属性 表示サンプル ソース 備考
name   例1:<textarea name="aaa" cols="10" rows="5"></textarea> 入力フィールドに入力・選択されたデータと共に<form>で指定したプログラムに送信されます。<input>のnameと同様の扱いです。
cols・rows 例1:<textarea name="textfield7" cols="10" rows="5"></textarea> 入力フィールドの幅と行数をそれぞれ設定します。入力文字制限をかけるのではありません。
wrap off:
virtual:
physical:
off:<textarea name="textarea" cols="10" rows="5" wrap="off"></textarea>
virtual:<textarea name="textarea2" cols="10" rows="5" wrap="virtual"></textarea>
physical:<textarea name="textarea3" cols="10" rows="5" wrap="physical"></textarea>
テキストエリア内に記入したテキストの折り返し設定をします。
off:オフ。一切折り返しません。横スクロールがでます。
virtual:仮想。テキストエリアの幅に合わせて自動的に折り返しされます。フォームを送信した際、この改行情報も送信されます。
physical:物理的。テキストエリアの幅に合わせて自動的に折り返しされます。フォームを送信した際、この改行情報は送信されません。あくまで見た目的に折り返しされているようになっているだけです。この設定が一番多いのではないかと思います。
▲UP
その他色々小技 表示サンプル ソース 備考
label



例1:<label for="aaa1"><input type="radio" id="aaa1"> あああ</label>
例2:<label for="iii2">いいい <input type="checkbox" id="iii2"></label>
例3:<label for="namae">お名前:
<input type="text" name="name2" size="10" id="namae"></label>
フォームの構成部品(一行テキストボックス・チェックボックス・ラジオボタン等)と、その項目名(ラベル)を「id="aaa"」を使用し、関連付けます。
このタグを使用すると、文字をクリックしても、チェックが入ります。
下記のように使うこともできますが、IE6では対応していないらしいので、例に書いた方法を使用します。
<label><input type="radio" value="bbb">BBB</label>
fieldset
グループ1 お名前:
メール:
グループ2 あああ
いいい
ううう
例1:<fieldset class="fieldset1">
<legend>グループ1</legend>
お名前:<input type="text" name="name" size="20">
<br>
メール:
<input type="text" name="mail" size="10">
</fieldset>
<fieldset>
<legend>グループ2</legend>
<input type="radio" name="manzoku" checked>あああ<br>
<input type="radio" name="manzoku">いいい<br>
<input type="radio" name="manzoku">ううう<br>
<textarea rows="3" name="S1" cols="20"></textarea>
</fieldset>
入力項目をグループ化し、グループごとに枠をつけることができます。(表示サンプルの枠はこのタグによって表示されるものです。)
disabled text:
password:
radio:
checbox:
submit:
reset:
button:
image:
file: select1:

textarea:
select(リスト):
例1:<input name="text" type="text" disabled value="編集できません">
例2:<select name="select4" disabled>
<option>編集できません</option>
</select>
例3:<select name="select4">
<option disabled>選択できません</option>
<option>選択可能</option>
<option>選択可能</option>
フォーム内に編集不可のvalueを表示します。グレーで文字が表示されます。imageボタンの場合は見た目は変りませんが、押すことができません。ほとんどのフォームの部品に適用できます。(セレクトボックス・テキストエリアに関してはselecttextareaの項を参照)
例3は、いくつかある<option>のうち、一つに「disabled」を適用したものですが、一部だけに設定することはできません。multipleのセレクトも同様です。
readonly text:
password:
例1:<input name="text" type="text" readonly value="編集できません"> disabledとよく似ています。が、名目は「読み出し専用」となっています。同じく編集不可です。文字がグレーではないです。あまり使いどころがなさそうですね。アフィリエイトのソース自動生成のところで使われ要る様子。
accept     fileで送信するデータのMIMEタイプの候補リストをカンマで区切って指定・・・らしいのですが、過去に一度も使用したことがないので、不要とみなしています。(通常ファイルアップロード用のプログラムでなにやらしているので。)
tabindex


例1:<input type="text" name="textfield" tabindex="1">
<input type="text" name="textfield2" tabindex="4">
<input type="text" name="textfield3" tabindex="3">
<input type="text" name="textfield4" tabindex="2">
タブキーを押して入力フィールドの移動順を設定します。(一つ目のテキストボックスをにカーソルを置いてから、タブキーをおしてみてください。)
accesskey 例1:<input type="text" name="textfield42" accesskey="a"> 任意の英数字1文字をショートカットキーとして割り当てます(Windowsの場合「Altキー」を押しながら「a」を押してください。左のテキストボックスにカーソルがきます。Macintoshの場合「Ctrlキー」と組み合わせる。マウスが使えない環境への配慮として利用するらしい・・・。)
この属性は携帯電話でおなじみのものです。実はPCでも使えたるいうのはちょっと驚きでした。
▲UP
エルテ化粧品
▲「エルテ化粧品」スポンサーサイトです。
(c)kanri-gamen