解説・結果

ヨッシーの”ホームページを作ろう(JavaScript編)”Vol.11

問題

<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
function wall(){
    color=prompt("1:赤 2:青 3:黄","1")
    if(color==null){
        alert("変更中止します");
    }
    else if(color==1){
        document.bgColor="red";
    }
    else if(color==2){
        document.bgColor="blue";
    }
    else if(color==3){
        document.bgColor="yellow";
    }
    else{
        alert("入力値が間違っています。もう一度入れなおしてください");
        wall();
    }

}
//-->
</SCRIPT>
</HEAD>
<BODY>
<INPUT type="button" value="背景を変える" onClick="wall()">
</BODY>
</HTML>

《結果》


《解説》
今回は関数の中身だけの解説です。
外のonClick関数などは今までたくさんやっているから、忘れた人はメールマガジンやこのページの上の解説を見てね。

<概要>
ユーザーに、1,2,3のどれかの文字を入力してもらって、それをif文で場合分けするんだね。また、キャンセルを押したり、入力を誤ったりしたときの命令も考えておこう。


function wall(){
    color=prompt("1:赤 2:青 3:黄","1")    ←@prompt("表示するテキスト","初期値")
    if(color==null){                  ←Aキャンセルを押すと”null”が返ってくる
        alert("変更中止します");
    }
    else if(color==1){                ←Bここは入力された文字(1,2,3)による、背景色の色分け
        document.bgColor="red";
    }
    else if(color==2){
        document.bgColor="blue";
    }
        else if(color==3){
        document.bgColor="yellow";
    }
    else{                        ←入力間違い。つまり、1,2,3以外の数字が入れられたとき
        alert("入力値が間違っています。もう一度入れなおしてください");
        wall();                      ←入力間違いはもう一度入力(wall()の始めに戻る)
    }
}


@:まず、表示するダイアログを作ってやろう。初期値というのは初めに白いボックスに表示させる文字だよ。
そして、入力された文字がcolorという変数に入るんだね。
A:キャンセルを押すとnullという値が返ってくることはメールマガジンで書いたね。実際に確認したい人は1つ上のプログラムでキャンセルを押してごらん。
B:ここで、入力された文字によって背景色を変えているんだ。つまり、もし入力した文字が1ならばif(color==1)、背景色を赤にするdocument.bgColor="red"。入力された文字が2や3の時も同じだよ。
C:最後にelseでそれ以外のときには、もう一度入力をやり直す(wall()を実行する)んだね。