ラジオボタンでリンク先を分岐するには?
[上に]
[前に]
[次に]
やなぎ
2000/03/13(月) 00:38:08
質問文の後に3種類のラジオボタンを作成して、どれかを選択してから
ボタンをクリックすると選んだものに応じてリンク先が変わる
というのをつくりたいと思います。
また、出来ればどれも選択されていないときにボタンをクリックした
場合にはエラーメッセージが出るようにしたいのですが、
どうしたらいいでしょうか?
ラジオボタンのvalueにURLを記述してそれを受け取ればいいのかな
と思うのですが、具体的にどう書けばよいのか、よく分かりません。本なども見てみたのですが…。勉強不足はわかっているのですが、お知恵を頂けたらと思います。
どじょう
2000/03/13(月) 00:59:22
<HTML>
<HEAD>
<TITLE>らじお</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function jump(){
var flag = 0;
for(i=0; i<document.forms[0].url.length; i++){
if(document.forms[0].url[i].checked){
flag = 1;
window.location.href = document.forms[0].url[i].value;
}
}
if(flag == 0){
alert('ラジオボタンが選択されていません。');
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="radio" NAME="url" VALUE="http://www.1.com/">
<INPUT TYPE="radio" NAME="url" VALUE="http://www.2.com/">
<INPUT TYPE="radio" NAME="url" VALUE="http://www.3.com/">
<INPUT TYPE="button" onClick="jump();" VALUE="移動">
</FORM>
</BODY>
</HTML>
やなぎ
2000/03/13(月) 01:22:05
どじょうさん有り難うございます。上手くいきました。
ところで、ずうずうしくも再度質問なのですが、
質問が複数ある場合はどうすればいいのでしょうか。
質問1
選択肢1 選択肢2 選択肢3
答え(ボタン)
質問2
選択肢1 選択肢2 選択肢3
答え(ボタン)
・
・
こんな感じで、質問ごとに答えが見れるようになります。
質問全部を選択してからリンクというわけでは無く、1つ1つ別
なのですが、1ページに複数の質問がまとまっているのです。
上記で教えて頂いたソースを質問の数並べてNAMEの値を
変えればいいのでしょうか?
ちなみに質問の数は13個位あります。
河童
2000/03/13(月) 02:48:00
答えのペィジも同じであるなら、
<A NAME="ans1">答え1</A>
<A NAME="ans2">答え2</A>
<A NAME="ans3">答え3</A>
とし、
リンクを
<INPUT TYPE="radio" NAME="url" VALUE="http://www.1.com/#ans1">
<INPUT TYPE="radio" NAME="url" VALUE="http://www.2.com/#ans2">
<INPUT TYPE="radio" NAME="url" VALUE="http://www.3.com/#ans3">
とすればよいでしょう!
猫
2000/03/13(月) 03:06:07
ie5でしか動作確認してないのですが・・・
<HTML>
<HEAD>
<TITLE>簡易クイズ</TITLE>
<SCRIPT LANGUAGE="JavaScript">
var point = new Array(2);
function jump(ques,ans){
var flag = 0;
for(i=0; i<document.forms[ques].url.length; i++){
if(document.forms[ques].url[i].checked){
flag = 1;
if(document.forms[ques].url[i].value == ans){
alert('正解どすぇ。');
point[ques] = 1;
}else{
alert('はずれどすぇ。');
}
break;
}
}
if(flag == 0){
alert('ラジオボタンが選択されていません。');
}
}
function end(){
var total = 0;
for(i=0; i<2; i++){
if(isNaN(point[i])){point[i] = 0;}
total += point[i];
}
alert(total + '点です');
}
</SCRIPT>
</HEAD>
<BODY>
Q1,白菜ではなくキュウリを主材料として漬けたキムチをなんという?
<FORM>
<INPUT TYPE="radio" NAME="url" VALUE="1">おいきむち<BR>
<INPUT TYPE="radio" NAME="url" VALUE="2">きゅむち<BR>
<INPUT TYPE="radio" NAME="url" VALUE="3">へなきむち
<INPUT TYPE="button" onClick="jump(0,1);" VALUE="解答">
</FORM>
Q2,なんたらかんたら
<FORM>
<INPUT TYPE="radio" NAME="url" VALUE="1">いや
<INPUT TYPE="radio" NAME="url" VALUE="2">正解
<INPUT TYPE="radio" NAME="url" VALUE="3">ちがうし
<INPUT TYPE="button" onClick="jump(1,2);" VALUE="解答">
</FORM>
<A HREF="javascript:end();">総合得点</A>
</BODY>
</HTML>
こうゆう事がやりたいのかな?
問題ごとにフォームを作ります.
問題数に合わせてpoint配列の数を増やしてください.
JUMP関数に問題番号(0から)と答えの番号(1〜3)を持たせます.
例 : jump(問題番号,正解番号);
初めに,結局何がしたいのか(例えばクイズとか)を書くと良いと思いますよ.
回答者もその方が考えるのが楽しいです.
やなぎ
2000/03/16(木) 01:28:55
[[解決]]
書き込み遅くなりましたが、みなさんありがとうございました。
結局最初に教えていただいたどじょうさんの
スクリプトを13個複製して(数字をつけて)
使わせていただきました。
具体的に何がしたかったかといいますと、
じつはクイズとかでは無く、教材みたいなものなんです。
(著作権について、なんですが…)
自分で買ったCDなら中の音楽をHPに載せてもいいよね。
みたいな質問文があって、それについてどう思うかを
まずラジオボタンで選んでから、解説のページを見せる
といった形のものです。
1ページにそういった事例が複数あって、解説ページは
質問×3(ラジオボタンの数)分ありました。
折角いろいろ教えて頂いたのですが、なにぶん初心者なもので、
今回は活かせませんでしたが、勉強にはなりました。
今度はクイズっぽいものにもチャレンジしてみようと思います。
[上に]
[前に]
[次に]