当选项值为“ø-&”时在选择标记中并在警报IE 11(11.0.9600.17126)中显示所选值似乎剥离空格并将其显示为“ø-&”你知道为什么吗?
HTML:
<select id="companies">
<option>ø- &</option>
<option>ø- &</option>
<option>ø- &</option>
</select>
<button onclick="javascript:alert(document.getElementById('companies').value);">TEST</button>
JSFiddle:http://jsfiddle.net/aK35t/14/
答案 0 :(得分:0)
问题似乎在于你的多字节字符(ø,æ)。也许你可以强制网页使用utf8编码?
Jquery以某种方式解决了这个问题。
function getCompaniesValue() {
alert($("#companies").val());
}
给出正确的结果。
答案 1 :(得分:0)
我没有IE 11来测试它,但对我来说这似乎是一个编码问题。您应该尝试使用正确的HTML实体来执行此操作:
<select id="companies">
<option>ø- &</option>
<option>ø- &</option>
</select>
<button onclick="javascript:alert(document.getElementById('companies').value);">TEST</button>
答案 2 :(得分:0)
这仅仅是因为你正在阅读选项的价值 - 但是空间在价值内部并没有真正有效。相反,您想要阅读文本:
document.getElementById('companies')
.options[document.getElementById('companies').selectedIndex].text
但是,您不应该依赖自动&#34;文本来评估&#34;无论如何。如果手动设置选项的值,它也可以与原始代码一起使用:
<select id="companies">
<option value="ø- &">ø- &</option>
</select>
<button onclick="alert(document.getElementById('companies').value);">GET</button>
尽管如此,你很可能在选项值中有一些ID - 所以如果你想在javascript中获取文本,请使用上面的代码段(或者使用jQuery&#39; s text()
)。