Java Language
#5 Script 3

Return to Labo.

ウッズから、課題1の回答が来た.IEでは動くが、ネスケでエラーが出るというので、俺が造ったのを、ネスケで実行してみたら、表示すら出なかった(T_T)(涙)
で、条件を改訂,IE及びネスケで動作確認の事.

一般的に、ネスケの方が、チェックが厳しいので、ネスケで動けばIEでも動作すると考えて良い様だ.→俺のも、ウッズのも、原因究明して修正した.ここで、今までのヒントに抜けていた部分について解説,


  1. FORMタグ
    ネスケでは、入力を伴う場合,このタグが必須となる様だ.IEでは、何故か要らない.まず、何故必要なのかを考えよう.参照した資料によれば、『入力フォームを表示します.<FORM>〜</FORM>がひとつのフォームとなります.フォームの中には<INPUT>や<SELECT>タグなどを用いてフォーム部品を配置することができます.』と有った.どうやら、正式には、入力用のテキストボックス<INPUT TYPE=text...>や、ボタン<INPUT TYPE=button...>を、単独で、HTML上に記述してはいけないらしい.
    従って、ボタンを1個配置するにも、

    <FORM NAME="FM1">
    <INPUT TYPE=button ....>
    </FORM>


    の様に、フォーム(フォーマット)で囲んで記述するのが正式の様だ.何も難しい話では無く、入力用のボタン等が存在するセクションを、<FORM>と、</FORM>で囲んでやれば良いのである..

    →俺の間違いはここでした.IEでは、この辺割愛出来るので、簡単に覚えすぎ.FORMタグで囲んでおかないと、ネスケでは、テキストボックス,ラジオボタン,ボタンが表示さえされなかった.


  2. document(オブジェクト)について
    さて、FORMタグを使う、もう一つの理由について考えてみた.ここで、documentというものを理解しておく.複数のフレームを扱わない場合、document==this document つまり、実行した時表示されるページを示す.現在までの例では、1番大きなオブジェクト(部品)である.ここに、文字,ボタンやテキストボックスなどの部品を配置するのだが、入力用に配置する部品であるボタン等については、FORMタグに囲んで配置するのだ.勿論,FORMには、以下の様に名前を付けておく.

    <FORM NAME="fm1">
    <INPUT TYPE=text VALUE="" NAME="text1">
    </FORM>


    こうする事によって、JavaScriptでは、上記例のテキストボックスの値をdocument.fm1.text1.valueという形で参照出来るのだ.この意味は、このページ(document)の中にある、入力セクションフォーマット(fm1)の中のテキストボックス(text1)の値(value)の様に、理解すれば良い.ところが、フォーマット(<FORM>)無しでは、document.???.text1.valueとなって、???の部分が特定出来ない訳だ.

    これは、日本人的には、住所で理解すると分かりやすい,
    例えば、
    静岡県.静岡市.静岡町1234.OZ研究所
    と言えば、場所が特定出来るが、
    静岡県.???.静岡町1234.OZ研究所
    では、何処の市か分からない.

    →ウッズの間違いは、document.を忘れていた点にあった.上記例のfm1.text1.valueの様に参照していた為に、ネスケでは、どのページから参照すれば良いのか分からなかった訳だ.OZ研究所の例で言えば、静岡市.静岡町1234.OZ研究所と指定していたので、ネスケでは、何処の県か分からなかったのである.


    IEでは、この辺が、若干曖昧でも許容するらしい.即ち,現在、静岡に居るんだから、静岡市.静岡町1234.OZ研究所と書けば分かるじゃん?的考え方だ.処理系的には、IEの方が優れている様に思えるが、コンパイラ言語への移行,グローバルな立場って事を考えると、正式な書き方をした方が良いのだ.


ここで、ビャ子から回答例を貰ったので、紹介する.
例題1:ビャ子回答例

Return to Labo. Before Next