奇怪的选择行为

时间:2013-11-25 14:37:37

标签: javascript html html-select

我正在建立一个网站,我遇到选择选项没有显示的问题,我不太确定发生了什么。

例如,我有这个页面:http://bit.ly/182gqK9

如果你点击“选择一个区域...”选择下拉列表,你会看到3个选项,第三个因为某种原因略微被切断(不知道为什么会这样),但是如果你查看源代码,那么显然有6种选择......

<select id="area" name="attribute_area">
    <option value="">Choose an area...</option>
    <option value="Area 2">PO1 - PO9</option>
    <option value="Area 1">PO12 - PO17</option>
    <option value="Area 2">SO14 - SO19</option>
    <option value="Area 2">SO30</option>
    <option value="Area 1">SO31</option>
</select>

我在FF中禁用了JavaScript,似乎解决了这个问题,但是如果我从页面中删除所有脚本,则问题仍然存在。

我在此页面上也有类似的奇怪问题:http://bit.ly/1aMTMJY

使用该页面,如果单击选择,它将显示4个选项,如果单击它并返回到它,它将显示5个选项。实际上还有6个选项。

1 个答案:

答案 0 :(得分:1)

看起来您的JavaScript正在从select中动态删除选项。当我禁用JavaScript时,我会看到问题中显示的6个选项列表。当我启用JavaScript并检查HTML时,这就是我所看到的:

<select id="area" name="attribute_area">
    <option value="">Choose an area...</option>
    <option value="Area 2" class="active">PO1 - PO9</option>
    <option value="Area 2" class="active">SO14 - SO19</option>
    <option value="Area 2" class="active">SO30</option>
</select>

您是否有代码可以动态更新选项列表?

禁用JS修复问题的事实意味着JS必须导致问题。您说即使从页面中删除所有JS,您仍然会看到问题。如果在删除所有JS后,您还在浏览器中禁用了JS,会发生什么?

如果真正删除了所有JS,那么禁用它应该没有效果。另一方面,如果禁用它仍然可以解决问题,那么必须有JS仍然在某处 - 可能是因为JS正在被缓存。

你说你没有任何明确试图动态更新选项的代码,但也许有些代码无意中或间接地这样做了。