WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:セレクトボックスの制御

ai [WriteDate : Tue May 15 16:42:22 2001]

とほほさんのところで下記の2つのサンプルを見つけ、この2つを同時に使えないかと思ったのですが(「別ウィンドウに表示」チェックボックスを表示し、なおかつリンクはセレクトボックスから飛ぶように)どう組み合わせていいのか判りません。どなたかご教授お願いします。
JSは初心者です^^;
--------
セレクトボックスからジャンプ(リンク)
function jump(sel) {
 if (sel.options[sel.selectedIndex].value) {
   location.href = sel.options[sel.selectedIndex].value;
 }
}

<FORM>
<SELECT onChange="jump(this)">
<OPTION VALUE="">コンテンツ
<OPTION VALUE="example2.htm">1. 丙種が兵士になった
<OPTION VALUE="index2.htm">2. 出陣の朝
<OPTION VALUE="wwwjs.htm">3.
</SELECT>
</FORM>
--------
「別ウィンドウに表示」を制御する
function func() {
 window.name = document.form1.cb1.checked ? "" : "out";
}

<FORM NAME=form1>
<INPUT TYPE=checkbox NAME=cb1 onClick="func()">
別ウィンドウに表示する
</FORM>
--------


andi [WriteDate : Tue May 15 18:16:03 2001]

<script>
function jump(){
    var url = document.form1.select1.options[document.form1.select1.selectedIndex].value;
    if(!url) {
        return;
    }

    if(document.form1.checkbox1.checked){
        window.open(url);
    }else{
        location.href=url;
    }
}
</script>
<form name="form1">
<select name="select1" onChange="jump()">
<option value="">コンテンツ
<option value="exp1.html">例その1
<option value="exp2.html">例その2
<option value="exp3.html">例その3
</select>
<input type="checkbox" name="checkbox1">別ウィンドウに表示
</form>


ai [WriteDate : Wed May 16 21:18:21 2001]

回答ありがとうございました。
さっそく上記で試してみたのですが、動作しませんでした……。
お手数ですが、考えられる原因がありましたら教えてください。
環境はマック+IE、ネスケともに4.xです。


Nobu3 [URL] [WriteDate : Fri May 18 02:11:32 2001]

どんなエラーかわからないので、ありがちなミスとすれば、スペルミスかファイルが無いか、くらいかも。

単純なので「仕様」とは考えにくいですが、↓これでも無理?
function jump(){
   var url = document.form1.select1.options[document.form1.select1.selectedIndex].value;
   if(url) {
       if(document.form1.checkbox1.checked){
           window.open(url);
       }else{
           location.href=url;
       }
   }
}


ai [WriteDate : Fri May 18 18:00:49 2001]

Nobu3さん、ありがとうございます。
やってみたんですが、やっぱり駄目でした^^;
var url = document.form1.select1.options[document.form1.select1.selectedIndex].value;
の行にエラーがでることが判ったんですが、何が悪いのか判りません。
よろしくお願いします。


ai [WriteDate : Fri May 18 18:02:41 2001]

全ソースはこんな感じです。
    <head>
<SCRIPT LANGUAGE="JavaScript">
<!--
function jump(){
var url = document.form1.select1.options[document.form1.select1.selectedIndex].value;
if(url) {
if(document.form1.checkbox1.checked){
window.open(url);
} else {
location.href=url;
            }
}
}
// -->
</SCRIPT>
    </head>

<body bgcolor="#ffffff" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0" link="#0000FF" alink="#FF0000" vlink="navy" onLoad="jump()">

<center>
<form name="form1">
<select name="select1" onChange="jump()">
<option value="">コンテンツ
<option value="index.htm">例その1
<option value="index2.htm">例その2
<option value="index3.htm">例その3
</select>
<input type="checkbox" name="checkbox1">別ウィンドウに表示
</form>
</body>
</html>


Nobu3 [URL] [WriteDate : Fri May 18 23:24:25 2001]

とりあえず、
onload="jump()"
は不要です。

あえていえば、bodyにbackground属性をつけるなら、text属性もつけましょう。
あと、<center>に対応する</center>が無いようです。


andi [WriteDate : Sat May 19 01:22:55 2001]

onload="jump()"でまだ存在しないdocument.form1を参照しにいってるのかな。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World