HTML上のドロップダウンリストから削除するには

解決


Hyde  2004-05-17 14:47:09  No: 83399  IP: [192.*.*.*]

すいませんVBScript(HTML)の質問です。
Form1.Combo1.Optionsから一括でオプションを削除するにはどうすればよろしいでしょうか。
Form1.Combo1.Options.Remove(index)でやってもうまくいきません。
どなたか教えて下さい。
よろしくお願いします。

編集 削除
魔界の仮面弁士  2004-05-17 23:11:28  No: 83400  IP: [192.*.*.*]

> Form1.Combo1.Options.Remove(index)でやってもうまくいきません。
あれ? removeメソッドで消えませんか?
当方では、同じコードで削除されましたけど。

========================
<html><head><title>TEST</title>
<script type="text/VBScript">
Sub Button1_onclick()
  Dim index
  For index = Form1.Combo1.options.length - 1 To 0 Step -1
    Form1.Combo1.options.remove index
  Next
End Sub
</script>
</head>
<body><form id="Form1">
<select name="Combo1">
<option>AAA</option>
<option>BBB</option>
<option selected>CCC</option>
</select></form>
<input type="button" id="Button1" value="Remove">
</body></html>
========================

で。
「一括で」との事ですが、HTML 4.01の文法的には、
項目数0のドロップダウンリストは認められていません。
(SELECT要素は、最低1個のOPTION要素を子に持つ必要があります)

なので、動作的には、
  Form1.Combo1.innerHTML = ""
とか、
  Form1.Combo1.options.length = 0
などで全削除は可能ですが、HTML的には望ましくありませんので、
最低1つは残した方が良いかと思います。

編集 削除
hyde  2004-05-18 13:23:31  No: 83401  IP: [192.*.*.*]

魔界の仮面弁士さん、ありがとうございました。

頂いたソースで試してみたところ、
思うようにできました。
本当に、感謝いたします。

編集 削除