プロが教える店舗&オフィスのセキュリティ対策術

2つのSELECTボックスを用意し、1つ目のSELECTボックスの内容により
2つめのSELECTボックスの内容(項目数も含め)を変える方法を教えてください。
下記のようなHTMLを作ってみましたが、2つ目のSELECTボックスに項目がないため「オブジェクトがありません」のエラーが出ます。
-------------------------------------------------------
<html>
<head>
<SCRIPT language="vbscript">
<!--
option explicit
sub selchng()
dim strsel

strsel = sel1.selectedIndex
Select Case strsel
Case "1"
sel2.item(0).value = "1"
sel2.item(0).text = "1"
sel2.item(1).value = "2"
sel2.item(1).text = "2"
Case "2"
sel2.item(0).value = "a"
sel2.item(0).text = "a"
sel2.item(1).value = "b"
sel2.item(1).text = "b"
sel2.item(2).value = "c"
sel2.item(2).text = "c"
Case else
sel2.item(0).value = "A"
sel2.item(0).text = "A"
End Select
end sub


-->
</SCRIPT>
</head>

<body>
<select name="sel1" onchange=selchng()>
<option value="1" selected>1</option>
<option value="2" >2</option>
<option value="3" >3</option>
</select>

<select name="sel2">
</select>
</body>
</html>

A 回答 (3件)

#1の方と同じですがVBScript版です。



strsel = sel1.selectedIndex はセレクトボックスの順番で取得(0~)
 この場合Caseの設定は
 case 0
 case 1
 case 2
 となる
sstrsel = el1.value にするとオプションのValue値から取得
 この場合Caseの設定は
 case "1"
 case "2"
 case "3"
 となる

<html>
<head>
<SCRIPT language="vbscript">
<!--
option explicit
sub selchng()
dim strsel

strsel = sel1.value
Select Case strsel
Case "1"
sel2.options.length = 2
sel2.options(0).value = "1"
sel2.options(0).text = "1"
sel2.options(1).value = "2"
sel2.options(1).text = "2"
Case "2"
sel2.options.length = 3
sel2.options(0).value = "a"
sel2.options(0).text = "a"
sel2.options(1).value = "b"
sel2.options(1).text = "b"
sel2.options(2).value = "c"
sel2.options(2).text = "c"
Case else
sel2.options.length = 1
sel2.options(0).value = "A"
sel2.options(0).text = "A"
End Select
end sub
-->
</SCRIPT>
</head>
<body>
<select name="sel1" onchange=selchng()>
<option value="1" selected>1</option>
<option value="2" >2</option>
<option value="3" >3</option>
</select>

<select name="sel2">
</select>
</body>
</html>
    • good
    • 0
この回答へのお礼

ありがとうございました。試してみます。

お礼日時:2002/10/28 16:10

Case "1" の後に


sel2.options.length = 2

Case "2" の後に
sel2.options.length = 3

Case else の後に
sel2.options.length = 1

を挿入してオプション要素の数を指定してやればできます。
    • good
    • 0
この回答へのお礼

ありがとうございます。試してみます。

お礼日時:2002/10/28 16:14

VBの関数が解らないのですが以下のソースなら動きます…


単に「sel2.length」のような指定をしていない可能性って無いですかね?

<html>
<head>
<SCRIPT language="JavaScript">
<!-- //
function func(zzzz){
switch(zzzz.sel1.selectedIndex){
case 0:
zzzz.sel2.length = 2;
zzzz.sel2.options[0].value = "1" ;
zzzz.sel2.options[0].text = "1" ;
zzzz.sel2.options[1].value = "2" ;
zzzz.sel2.options[1].text = "2" ;
break;
case 1:
zzzz.sel2.length = 3;
zzzz.sel2.options[0].value = "a" ;
zzzz.sel2.options[0].text = "a" ;
zzzz.sel2.options[1].value = "b" ;
zzzz.sel2.options[1].text = "b" ;
zzzz.sel2.options[2].value = "c" ;
zzzz.sel2.options[2].text = "c" ;
break;
case 2:
zzzz.sel2.length = 1;
zzzz.sel2.options[0].value = "A" ;
zzzz.sel2.options[0].text = "A" ;
break;
}
}

// -->
</SCRIPT>
</head>

<body onLoad="func(ffff)">
<form name="ffff">
<select name="sel1" onchange="func(ffff)">
<option value="1" selected>1</option>
<option value="2" >2</option>
<option value="3" >3</option>
</select>

<select name="sel2">
</select>
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

ありがとうございます。試してみます。

お礼日時:2002/10/28 16:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています