javaScript

フォームの部品を利用する

HTMLフォームは、javaScriptからみれば、formオブジェクトです。フォームのGUI部品であるbuttonオブジェクト、ラジオボタンはradioオブジェクト、テキストフィールドはtextオブジェクトです。フォームをうまく利用することで、javaScriptでさまざまなものが作成できます。

サンプルコードの実行結果はこちら

フォーム部品へのアクセス方法

前々回紹介したオブジェクトの階層図をみると分かるように、フォーム部品はformオブジェクトの下にあります。formオブジェクトはdocumentオブジェクトの下の階層です。各要素はHTMLのname属性で指定した名前でアクセスできます。

今回のサンプルプログラムだと、inputFormという名前のフォームのheightという名前のテキストバックス(textオブジェクト)にある、valueプロパティには以下のようにアクセスできます。

このvalueは、テキストボックス内の文字列を表すプロパティです。
valueプロパティを読みだせば、テキストボックスの文字列を取り出せます。
また、値を代入すれば、テキストボックス内の文字列を変更できます。

自分自身を表すthisプロパティ

stdWeight関数の引数にthis.formと指定していますが、formの部品には、自分自身を示す特殊なプロパティthisが用意されています。例えば、ボタンをイベントハンドラで書いた場合、「this」はボタン自身を表します。さらにボタンが属するformオブジェクトは「this.form」で参照できます。

なぜ引数に「this.form」を渡すのか。そうすることにより、呼び出された関数は「formの各部品にフォームの階層からアクセスできる」からです。stdWeight関数の先頭では、次のように「inputForm.height.value」という形式でテキストボックスの値にアクセスしています。

もし、引数に「this.form」を渡さない場合は、「document.inputForm.height.value」という感じで、documentオブジェクトの階層から指定しなければならなくなり、プログラムが読みにくくなります。

ラジオボタンを使う

フォームのラジオボタンは、javaScriptではradioオブジェクトして扱います。1つのグループ(同じ「name」属性)のラジオボタンの最初の要素の添え字を0とする配列してみなします。

チェックが付いているかどうかは、checkedプロパティで確認できます。
選択されていればtrue、違うならfalseです。下記で男性にチェックが入っているか判定しています。

-javaScript
-,