カテゴリー
JavaScript

様々なオブジェクト(Formオブジェクト)について知ろう10

この章ではFormオブジェクトについて説明します。
FormオブジェクトはHTMLのフォームのデータを取得するなど、フォームにアクセスするためのオブジェクトです。
フォームの入力データが正しいかどうかをチェックしたりすることが出来ます。
FormオブジェクトはHTMLのformの要素1つ1つをオブジェクトとして扱います。
具体的にformオブジェクトとはButtonオブジェクト、Textオブジェクト,FileUploadオブジェクト,Submitオブジェクト,Resetオブジェクト, Radioオブジェクト,Checkboxオブジェクト,Buttonオブジェクト,Selectオブジェクト、Textareaオブジェクト、Passwordオブジェクトのことを言います。
では例をみてみましょう。1111 結果は名前を入力しない場合には以下の通り表示されます。1 名前を入力した場合には以下の通り表示されます。1 ではどのようにしてformの要素にアクセスするか説明します。
基本構文は以下の通りです。1 Formオブジェクトはそれ自体がdocumentオブジェクトのプロパティとなりますので、先頭にdocumentが付いた形式になります。
構文のフォームの名前と要素の名前はname属性の値を指定してください。1 例では1が該当します。
これでform内の1の箇所にアクセスすることができます。
これでフォームの指定箇所までアクセスできましたが、この箇所から入力されたデータを得るためにはvalueプロパティが必要です。
入力した値を取得するには1 と言う形式で入力されたデータを取得することが出来ます。
つまりこの例では1と書いています。
フォームのデータを取得するには1 の他にも以下の構文でも可能です。1 上の構文で1を書き替えると以下のようになります。1 では実際に[番号による指定or名前による指定]の説明をします。
以下のようなフォームがあるとすると以下のような番号で
「番号による指定」を行います。11 では具体的にフォームの要素にアクセスする方法について説明をしていきます。
0番目のフォームforms[0]の
0番目のエレメントelements[0]
は以下の記述です。1
0番目のフォームforms[0]の
1番目のエレメントelements[1]
は以下の記述です。1
0番目のフォームforms[0]の
2番目のエレメントelements[2]
は以下の記述です。1 以下のように番号による指定と名前による指定は混在していても構いません。1
では例の説明に戻ります。1 値がカラの場合、つまり何も入力していない場合は1と、警告が出ます。
警告が出た後はfocusメソッドによって指定した入力欄にフォーカス(カーソル)を合わせます。1
1の意味は「フォームのテキスト欄にフォーカスしてね」と言う意味です。
focusメソッドは「名前が未入力です」というダイアログボックスのOKをクリックした後に次のようにカーソルを入力欄に合わせてくれます。11
以下の例で補足をします。1 未入力の場合にはcheck1メソッドの中に1と書いてあるのでfalseが返されます。
このfalseがどこに返されるのかと言いますと1の箇所です。
falseが返されることでイベントの実行を中止にすることが出来ます(この例ではonsubmitの実行を中止します)。
では今度は次の例のようにformタブの中のonsubmit属性の値からreturnを外してみましょう。
さらに1を付け加えます。
名前がカラのときに1は実行されますが、そのまま処理が中断せずに1も実行してしまいます。
つまり、returnを付けないとイベントの実行を中止にすることが出来ません。11 以下の「名前が未入力です」のダイアログボックスの中のOKをクリックしますと、1も実行してしまいます。11
以下の箇所に「return」を付けると「名前が未入力です」のダイアログボックスの中のOKをクリックしても1は実行されません。つまり、イベントの実行が中止されているという意味になります。1 補足はここで終わります。
次は「ラジオボタン」が選択されているかどうかをチェックする方法とそのチェックされた値を出力する方法について説明します。1111 初めに1のname属性の値はすべて同じにします。この例ではすべてabcになっています。
以下の箇所ではsubmitボタンを押すとsample関数が呼び出されます。1 ではsample関数内の説明をします。1 =>ここではラジオボタンがいくつあるかを取得しています。
1の後ろにlengthを付けるとラジオボタンの個数を得ることが出来ます。
name属性の値はabcですべて同じ名前ですが、ラジオボタンのように複数の同じ要素名がある場合はその要素は配列になります。
ですのでlengthで配列の要素数を取得できます。

1=>ラジオボタンがチェックされているのかを知るにはcheckedプロパティを使います。
選択されている場合は true を、選択されていない場合は false を返します。1 チェックされている箇所を1の箇所で出力します。
valueを付けることで選択された要素を取得できます。
結果は以下の通りです。1
次は「チェックボックス」にチェックが入っているかの確認する方法について説明します。
では例をみてみましょう。11111 「チェックボックス」は複数のデータを選択できますので、選択した分をダイアログボックスにすべて表示します。1 始めはif文の1の結果、falseになり、以下のmoji変数にはチェックを入れた初めの要素が入ります。1 つまり、すべてのチェックボックスにチェックが入っているとすると1周目は「OK」が入ります。1 結果は以下の通りです。1 何もチェックを入れないと以下の通りになります。1
次はフォームのセレクトボックスの未選択をチェックする方法について説明します。
では例をみてみましょう。11111
セレクトボックスでの未選択を確認するにはselectedIndexプロパティを使います。1 フォームのセレクトボックスで選ばれた項目の番号を返します。1 =>未選択が 0 で、その他はセレクトボックスの上から1と数えます。
つまり、猫が1,犬が2,タヌキが3を返します。
未選択の場合は1が実行されます。

次はselectedIndexを使って、セレクトボックスで選択されたテキスト部分のデータを取得する方法について説明します。1 はフォームのセレクトボックスで選ばれた項目の番号を返しますが、これを以下の構文のoptionsの引数に入れます。1 この構文でセレクトボックスで選択したテキスト部分のデータにアクセスすることが出来ます。
例では以下の箇所です(スペースの都合で複数行で書いています)。1 テキスト部分のデータとは1 の中のテキストの部分である以下の箇所です。
「猫ちゃん」
「犬ちゃん」
「タヌキちゃん」
その中の選択した項目がアラートで表示されます。
また、以下のように先ほどの構文のtextの代わりに1を付けるとどうなるのかを説明します。1 このようにvalueを付けると以下のvalueの値にアクセス出来ます。1 つまり、以下の箇所です。
「猫」
「犬」
「タヌキ」
ではこの例の表示結果をみてみましょう。
何かを選択すると選択した項目がアラートで表示されます。
結果は以下の通りです。1 上のダイアログボックスのOKをクリックしますとさらに以下のダイアログボックスが表示されます。1 次はセレクトボックスで複数選択した時の例をみてみましょう。11111 セレクトボックスで複数選択して以下のように出力した場合、出力されるのは最初に選択した値だけです。1 すべての値を出力したい場合はfor文を使用してください。1 この構文でセレクトメニューの数を取得します。1 =>if文の条件式でそれぞれの要素が選択されているかを確認しています。
セレクトメニューの場合はselectedで確認しますが、ラジオボタンやチェックボックスはcheckedで確認するので気を付けてください。
以下の箇所で選択項目を出力します。1 =>選択している値だけをalertで出力します。
次はthisを関数に渡す例について説明します。
いままではイベント設定時には以下のように関数の引数はカラでした。1
今回は「this」を引数として渡します。1 thisとはオブジェクト自身を指します。
この例のthisはイベントが発生している場所であるformを指していることになります。
では例を見てみましょう。11111
sampleの引数のthisは1のyで受けます。
今までは1と、長々と書いていましたが1と省略して書くことが出来ます。
つまり1は同じ意味です。
先ほども書きましたが、thisはイベントが発生している場所であるformを指していることになります。