クイズや心理テストに使えるスクリプトです。
質問に対する答えを選び、ボタンを押すとダイアログで結果が表示されます。
このスクリプトは、1つのページに複数の質問を設置する事が出来ます。
また、答えを選択せずにボタンを押すと、エラーメッセージが表示されます。
・サンプルを見る
・ソースを保存する (右クリック→「対象をファイルに保存」or「リンクを名前を付けて保存」して下さい。)
・ソースを見る ・解説を見る
[ ソース ]
<html><head>
<script language="JavaScript">
<!--//Copyright (C) WEST MiRa http://www.west-mira.jp
function test(doko){
var errors="答えを選択して下さい。";
var bodys='<body>';
var tagus='';
var tagus2='';
var dore=-1;
for(i=0; i<3; i++)
if(document.forms[doko].elements[i].checked==true)dore=document.forms[doko].elements[i].value;
if(dore==-1){alert(errors);}
else {
document.open();
document.write('<html><body>');
document.write(tagus+dore+tagus2);
document.write('<br><br><a href="JavaScript:history.back();">戻る</a></body></html>');
document.close();}
}
//-->
</script>
</head>
<body>
質問1:さて、私の今の状態を当ててください。
<form name="form1">
<input type="radio" name="q1" value="そのと〜り">私はいま眠い<br>
<input type="radio" name="q1" value="はずれ">私はいまお腹が空いている<br>
<input type="radio" name="q1" value="いや、当たってるけど…">私はいまお金がない<br>
<input type="button" value="結果" onClick="test('form1');">
</form>
<br>
質問2:明日は晴れるでしょうか?
<form name="form2">
<input type="radio" name="q1" value="明日にならないとわかりません">はい<br>
<input type="radio" name="q1" value="ぶ〜っ!">いいえ<br>
<input type="radio" name="q1" value="そうだよね">どちらとも言えない<br>
<input type="button" value="結果" onClick="test('form2');">
</form>
・
・
・
</body></html>
[ 解説 ]
まず下の方のHTML部分をご覧下さい。
最初に、質問事項を変更します。
「さて、私の今の状態を当ててください。」に、1番目の質問事項を書いてください。
続いて、答えの選択肢部分を書き換えて下さい。
1番目の選択肢は、「私はいま眠い」「私はいまお腹が空いている」「私はいまお金がない」の3つです。
そして、各選択肢の値部分に、答えを記入しておきます。
例えば1番目の選択肢の場合、
<input type="radio" name="q1" value="そのと〜り">私はいま眠い<br>
「そのと〜り」の部分が、答えになります。
ここもお好きな文字を記入してください。
そのまま「はずれ」でも結構ですし、「おしい」とかでも結構です。
次に同じ要領で、2番目の質問事項を変更します。
「明日は晴れるでしょうか?」の部分に、お好きな質問をお書き下さい。
で、同じ要領で選択肢と、その内部に保有している答えを変更して下さい。
さらに質問事項を増やしたい場合は、まず
質問2:明日は晴れるでしょうか?
<form name="form2">
<input type="radio" name="q1" value="明日にならないとわかりません">はい<br>
<input type="radio" name="q1" value="ぶ〜っ!">いいえ<br>
<input type="radio" name="q1" value="そうだよね">どちらとも言えない<br>
<input type="button" value="結果" onClick="test('form2');">
</form>
をコピーペーストして下さい。
そして同じ要領で質問事項、選択肢、答えを変更して下さい。
で、最後に「form2」と書かれた場所を、数字の部分を1つ繰り上げて「form3」にして下さい。
2カ所有りますから、必ず2カ所とも変更して下さい。
例えば質問事項を1つ増やす場合、以下のようになります。
変更前 |
質問1:さて、私の今の状態を当ててください。
<form name="form1">
<input type="radio" name="q1" value="そのと〜り">私はいま眠い<br>
<input type="radio" name="q1" value="はずれ">私はいまお腹が空いている<br>
<input type="radio" name="q1" value="いや、当たってるけど…">私はいまお金がない<br>
<input type="button" value="結果" onClick="test('form1');">
</form>
<br>
質問2:明日は晴れるでしょうか?
<form name="form2">
<input type="radio" name="q1" value="明日にならないとわかりません">はい<br>
<input type="radio" name="q1" value="ぶ〜っ!">いいえ<br>
<input type="radio" name="q1" value="そうだよね">どちらとも言えない<br>
<input type="button" value="結果" onClick="test('form2');">
</form>
|
変更後 |
質問1:さて、私の今の状態を当ててください。
<form name="form1">
<input type="radio" name="q1" value="そのと〜り">私はいま眠い<br>
<input type="radio" name="q1" value="はずれ">私はいまお腹が空いている<br>
<input type="radio" name="q1" value="いや、当たってるけど…">私はいまお金がない<br>
<input type="button" value="結果" onClick="test('form1');">
</form>
<br>
質問2:明日は晴れるでしょうか?
<form name="form2">
<input type="radio" name="q1" value="明日にならないとわかりません">はい<br>
<input type="radio" name="q1" value="ぶ〜っ!">いいえ<br>
<input type="radio" name="q1" value="そうだよね">どちらとも言えない<br>
<input type="button" value="結果" onClick="test('form2');">
</form>
<br>
質問3:今は何月でしょうか?
<form name="form3">
<input type="radio" name="q1" value="もう終わったよ">10月<br>
<input type="radio" name="q1" value="正解">11月<br>
<input type="radio" name="q1" value="もうすぐね">12月<br>
<input type="button" value="結果" onClick="test('form3');">
</form>
|
結果が表示される画面の、ボディタグをカスタマイズしたい場合は、上から7行目の
var bodys='<body>';
のボディタグを変更して下さい。
壁紙やリンク文字の色変更、何でもお好きに設定してください。
また、結果の文字を大きくしたり色を付けたい場合は、その下の行の
var tagus='';
に、開始タグをお書き下さい。
終了タグは、
var tagus2='';
にお書き下さい。
例えば、ボディタグに背景色とテキスト色指定、結果の文字を太字でフォントサイズ4で設定したい場合。
以下のようになります。
var bodys='<body bgcolor="#ffffff" text="#000000">';
var tagus='<b><font size="4">';
var tagus2='</font></b>';
変更は、以上です。
(補足)
答えを3択から2択、または4択などラジオボタンの数を変更したい場合は、
まずボディ内でラジオボタンの数を増減させてください。
次に、上から12行目にある
for(i=0; i<3; i++)
の「3」の部分を、ラジオボタンの数に直してください。
2択にしたいならば
for(i=0; i<2; i++)
になります。
|