为什么IE 11 javascript在value方法中删除空格?

时间:2014-07-02 07:19:08

标签: javascript html internet-explorer-11

当选项值为“ø-&”时在选择标记中并在警报IE 11(11.0.9600.17126)中显示所选值似乎剥离空格并将其显示为“ø-&”你知道为什么吗?

HTML:

<select id="companies">
       <option>ø- &</option>
       <option>ø- &amp;</option>
       <option>&oslash;- &amp;</option>
</select>
<button onclick="javascript:alert(document.getElementById('companies').value);">TEST</button>

JSFiddle:http://jsfiddle.net/aK35t/14/

3 个答案:

答案 0 :(得分:0)

问题似乎在于你的多字节字符(ø,æ)。也许你可以强制网页使用utf8编码?

Jquery以某种方式解决了这个问题。

function getCompaniesValue() {
    alert($("#companies").val());
}

给出正确的结果。

答案 1 :(得分:0)

我没有IE 11来测试它,但对我来说这似乎是一个编码问题。您应该尝试使用正确的HTML实体来执行此操作:

<select id="companies">
    <option>&oslash;- &amp;</option>
    <option>&oslash;- &</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="ø- &amp;">ø- &amp;</option>
</select>
<button onclick="alert(document.getElementById('companies').value);">GET</button>

尽管如此,你很可能在选项值中有一些ID - 所以如果你想在javascript中获取文本,请使用上面的代码段(或者使用jQuery&#39; s text() )。