セレクトオブジェクトのMULTIPLEあり/なしによるTEXT抽出方法のちがい

MULTIPLEを指定するとアイテムを複数指定できる。selectedIndexでは、
選択した最初のアイテムのインデックス番号しか調べられないので、
MULTIPLEを指定した場合は、options[index].text、options[index].valueを
使ったループでtextやvalueを引っぱり出すことになる。

実行結果

MULTIPLE指定あり

MULTIPLE指定なし


ヘッダ部分
<SCRIPT LANGUAGE="JavaScript">
function checkMultiple(form)	{
	var msg1 = "MULTIPLE指定ありで選択されているアイテム\n"
	for(i=0 ; i<form.devices1.length ; i++)	{
		if(form.devices1.options[i].selected)	{
			msg1 += "\n" + form.devices1.options[i].text
		}
	}
	alert(msg1)
}

function checkNoneMultiple(form)	{
	var msg2 ="MULTIPLE指定なしで選択されているアイテム\n\n"
	msg2 += form.devices2.options[form.devices2.selectedIndex].text
	alert(msg2)
}
</SCRIPT>

ボディ部分 <FORM> MULTIPLE指定あり <SELECT NAME="devices1" SIZE="7" MULTIPLE> <OPTION SELECTED VALUE="Printer">プリンタ <OPTION VALUE="Scanner">スキャナ <OPTION VALUE="Digital Camera">デジタルカメラ <OPTION SELECTED VALUE="Modem">モデム <OPTION VALUE="TA">ターミナルアダプタ <OPTION VALUE="MO">光磁気ディスクドライブ <OPTION VALUE="ZIP">ZIPドライブ </SELECT> <INPUT TYPE="button" VALUE="check" onClick="checkMultiple(this.form)"> <P> MULTIPLE指定なし <SELECT NAME="devices2" SIZE="7"> <OPTION VALUE="Printer">プリンタ <OPTION VALUE="Scanner">スキャナ <OPTION VALUE="Digital Camera">デジタルカメラ <OPTION SELECTED VALUE="Modem">モデム <OPTION VALUE="TA">ターミナルアダプタ <OPTION SELECTED VALUE="MO">光磁気ディスクドライブ <OPTION SELECTED VALUE="ZIP">ZIPドライブ </SELECT> <INPUT TYPE="button" VALUE="check" onClick="checkNoneMultiple(this.form)"> </FORM>