複数のフォーム

Index  Back  Next
  複数のフォームがある場合、それぞれのフォームは forms[0]、form[1] ・・・の
 ように配列として割り当てられます。このことを利用して、簡単なサンプルを作成し
 てみます。

【例】

  <SCRIPT TYPE="text/JavaScript">
  <--
  function display( i )
  {
    document.forms[i].val.value = i + "番目のフォームです";  // (1)
  }
  //-->
  </SCRIPT>

  <FORM NAME="a">    // forms[0] または forms["a"]
    forms[0] <INPUT NAME="val" SIZE="30" MAXLENGTH="30">
  </FORM>
  <FORM NAME="b">    // forms[1] または forms["b"]
    forms[1] <INPUT NAME="val" SIZE="30" MAXLENGTH="30">
  </FORM>
  <FORM NAME="c">    // forms[2] または forms["c"]
    forms[2] <INPUT NAME="val" SIZE="30" MAXLENGTH="30">
  </FORM>
  <FORM NAME="d">    // (2)
    ボタンを押すと、対応しているフォーム内へ文字を表示します。<BR>
    <INPUT TYPE="BUTTON" VALUE="Button 0" ONCLICK="display(0)">
    <INPUT TYPE="BUTTON" VALUE="Button 1" ONCLICK="display(1)">
    <INPUT TYPE="BUTTON" VALUE="Button 2" ONCLICK="display(2)">
  </FORM>

【解説】

 (1) ここで i 番目のフォームに文字を出力します。
 (2) 各ボタンを押すと、それぞれのボタンの番号に対応したフォームに文字列を表示
     します。

 form[0]、form[1] などは、NAME オプションでそれぞれ "a"、"b" と定義している
 ので、form["a"]、form["b"] と置き換えることも可能です。また、直接フォームの
 NAME で document.a.val.value とすることもできます。さらに各フォームがいくつ
 かの要素( テキストボックス、ボタン、リスト等 )で構成されている場合、それぞれ
 の要素は順番に elements[0]、elements[1] といった、elements 配列として割り当
 てられます。
【実行してみよう】

forms[0]
forms[1]
forms[2]
ボタンを押すと、対応しているフォーム内へ文字を表示します。