考虑到我们有这个HTML:
<select id="my_select">
<option value="1">Foo</option>
<option value="2">Bar</option>
<option value="">Bork</option>
<option value="3">Hey!</option>
</select>
获取所选value
的正确方法是:
var oS = document.getElementById("my_select");
alert(oS.options[oS.selectedIndex].value);
但如果选择第三个选项Bork,则alert()
将显示"Bork"
而不是""
(空字符串)。
如何检索空字符串?
TYIA
答案 0 :(得分:7)
首先,它没有。对我来说,在Chrome和IE8中,您的示例会提醒空字符串(jsFiddle)。
但是,如果根本没有设置value
(jsFiddle),则会提醒Bork
。我认为,这是你遇到的问题。这是正确的行为。正如the MDC page所说,
如果未定义,则其默认值为元素的文本内容。
但是,您可以使用getAttribute
方法,如果未选择任何元素,则null
会提供var oS = document.getElementById("my_select");
alert(oS.options[oS.selectedIndex].getAttribute('value'));
。
{{1}}
答案 1 :(得分:0)
alert(document.getElementById(“my_select”)。value)
返回空字符串或所选选项的任何已定义值。
无需指定选项[selectedIndex]
如果没有默认选择的索引,则返回第一个选项值。
如果所选选项没有值属性,
在大多数浏览器的脚本提醒中都会返回选项的文本,
并在所有浏览器中发送到服务器(如果select具有名称和表单操作)。