アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のソースのように、親子連動型のselectを作成しています。
ですが、特定の値にselectedを設定するところで行き詰っています。
例えば、
dai_komokuのselectedが大項目2で
chu_komokuのselectedが中2-3
というようなかたちです。

このような事は可能なのでしょうか?
可能であれば教えていただければ幸いです。

<script type="text/javascript">
<!--
function changelist(){
var num = document.forms["writeform"].dai_komoku.selectedIndex
var obj = document.forms["writeform"].chu_komoku.options
obj.length = 0

if(num==0){
obj[obj.length]=new Option("----------------","");
}
if(num==1){obj[obj.length]=new Option('中1-1','11')
obj[obj.length]=new Option('中1-2','12')
}else
if(num==2){obj[obj.length]=new Option('中2-1','21')
obj[obj.length]=new Option('中2-3','23')
}
if(obj.selectedIndex==-1)obj.selectedIndex=0
if(document.layers){
window.resizeBy(-10,-10)
window.resizeBy(10,10)
}
}
//-->
</script>
<form method="post" action="hoge.php" name="writeform">
大項目
<select name="dai_komoku" onchange="changelist()">
<option value="" selected>--選択してください--</option>
<option value='1'>大項目1</option>
<option value='2'>大項目2</option></select>
<br>

中項目
<select name="chu_komoku"></select>
</form>

A 回答 (3件)

大項目2を選ばれたら、中項目の中2-3を選択したいってことですか?



それでしたら可能です。

if(obj.selectedIndex==-1)obj.selectedIndex=0
このあたりをいじればできると思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。
皆さんのアドバイスのおかげで成功いたしました。

お礼日時:2006/02/14 21:45

RHSBEさんこんにちは、papillon68と申します。



> obj[obj.length]=new Option('中2-3','23');
の直後に

obj[obj.length-1].selected = true;

を追加すれば「中2-3」が選択状態になります。


また、最後に追加したアイテムを選択状態にするということではなく、
特定のvalue(ここでは21や23など)を選択状態にしたいという場合は
以下のようにします。

for(var i=0; i<obj.length; i++) {
if(obj[i].value == '23') {
obj[i].selected = true;
break;
}
}


少し気になったのですが、
> var num = document.forms["writeform"].dai_komoku.selectedIndex
のように文の終わりに「;」をつけていないことが多いようです。
それでも動きますが、「;」はつけた方がいいと思います。
    • good
    • 0
この回答へのお礼

>特定のvalue(ここでは21や23など)を選択状態にしたいという場合
やりたいことはまさにこれでした。
for文を使うことによりうまく動作させる事ができました。
どうもありがとうございました。

お礼日時:2006/02/14 21:47

> if(obj.selectedIndex==-1)obj.selectedIndex=0



if(obj.selectedIndex==-1)obj.selectedIndex=0;
else obj.selectedIndex=obj.length-1;

最後のアイテムを選択状態にするだけでしたらこれで十分でした。
    • good
    • 0

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