飛ぶプルダウンを複数作りたい

[新着] Webテンプレートを仮オープンしました



0   名前: TOM : 2004/12/16 22:31
選択したページへ飛ぶプルダウンメニューの作り方は

http://www.tagindex.com/javascript/link/select1.html

で分かったのですが、これを同一ページに複数作ろうとすると、どうもうまくいきません。
JAVAスクリプトの知識があまりないだけかもしれませんが、どうすれば良いのでしょう?

1   名前: むむりく : 2004/12/17 02:55
具体的なアドバイスを得るため、
是非うまくいかなかったソースの提示を。

2   名前: U D : 2004/12/17 13:06
ひょっとして全てコピペしたのであれば、
それぞれ FORM の NAME が"form1"に、
SELECT の NAME が"select"になっているのでは?
それだといくらコピーしてもうまくいきませんが・・・

3   名前: TOM : 2004/12/17 22:28
うまくいかなかったソースは、

<html>

<HEAD>

<title></title>

<SCRIPT TYPE="text/javascript">
<!--


var target = "main";


function jump(){

var url = document.form1.select.options[document.form1.select.selectedIndex].value;

if(url != "" ){

if(target == 'top'){
top.location.href = url;
}
else if(target == 'blank'){
window.open(url, 'window_name');
}
else if(target != ""){
eval('parent.' + target + '.location.href = url');
}
else{
location.href = url;
}

}

}



function jump(){

var url = document.form2.select2.options[document.form2.select2.selectedIndex].value;

if(url != "" ){

if(target == 'top'){
top.location.href = url;
}
else if(target == 'blank'){
window.open(url, 'window_name');
}
else if(target != ""){
eval('parent.' + target + '.location.href = url');
}
else{
location.href = url;
}

}

}
// -->
</SCRIPT>

</HEAD>


<body>

<FORM NAME="form1">
<SELECT NAME="select" onChange="jump()">
<OPTION>(プルダウン1)

  (省略)

</SELECT>
</FORM>


<FORM NAME="form2">
<SELECT NAME="select2" onChange="jump()">
<OPTION>(プルダウン2)

  (省略)

</SELECT>
</FORM>

</body>

</html>

です。
今は簡略化のためプルダウンは2つですが、今後プルダウンの数を増やしていく予定です。

4   名前: むむりく : 2004/12/18 01:47
関数名の jump() が同じになっているからですね。
他のところは全部変えていたのに、惜しいです。

でも、まあ、プルダウンメニューが増えるたびに、
同じようなことを何度も書くのは手間なので……

head に。

<script type="text/javascript">
<!--
function jump(thisForm){
parent.main.location.href = thisForm.options[thisForm.options.selectedIndex].value;
}
//-->
</script>

body はこんな感じ。

<form name="form1">
<select name="select" onchange="jump(this)">
<option>(プルダウン1)

  (省略)

</select>
</form>


<form name="form2">
<select name="select2" onchange="jump(this)">
<option>(プルダウン2)

  (省略)

</select>
</form>

これでいけると思います。

5   名前: TOM : 2004/12/18 11:13
できました。試しにプルダウンの数を増やしても、ちゃんと動作しました。

ありがとうございました。

一覧へ戻る