Javascript 奇怪的选择选项行为

Javascript 奇怪的选择选项行为,javascript,html,html-select,Javascript,Html,Html Select,我正在建设一个网站,我有选择的选项没有显示问题,我不太确定是怎么回事 例如,我有以下页面: 如果单击“选择一个区域…”。。。选择下拉菜单,您将看到3个选项,第三个选项由于某些原因略微被切断,不确定原因,但如果您查看源代码,显然有6个选项 <select id="area" name="attribute_area"> <option value="">Choose an area...</option> <option value="Ar

我正在建设一个网站,我有选择的选项没有显示问题,我不太确定是怎么回事

例如,我有以下页面:

如果单击“选择一个区域…”。。。选择下拉菜单,您将看到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,似乎解决了这个问题,但如果我从页面中删除所有脚本,问题仍然存在

我在这一页上还有一个类似的同样奇怪的问题:


对于该页面,如果单击“选择”,它将显示4个选项;如果单击“关闭”并返回,它将显示5个选项。实际上还有6个选项。

看起来您的JavaScript正在从选择中动态删除选项。当我禁用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正在被缓存


您说没有任何代码在运行时显式地尝试更新选项,但可能有一些代码无意中或间接地这样做。

看起来您的JavaScript正在动态地从选择中删除选项。当我禁用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正在被缓存


你说你没有任何代码在运行中显式地尝试更新选项,但可能有些代码是无意或间接地这样做的。

在Macyea上的Chrome和Firefox中看起来不错我现在在我的工作计算机上使用ie 8,一切看起来都很好。我明白你的意思,是的,这很奇怪。如果仅禁用选项元素上定义的事件处理程序,会发生什么情况?我在一台Win7电脑上,刚刚在Chrome、Firefox、Safari、Opera和IE9上进行了测试,但仍然存在同样的问题。尽管在第二个页面上,当我单击后退时,它显示了5个选项,而不是4个,然后是5个。我以前从未遇到过这样的问题@JordanGray即使我删除/注释掉了那个部分,也没什么变化:在Macyea上Chrome和Firefox对我来说都很好我现在在我的工作电脑上使用IE8,一切看起来都很好。我明白你的意思,是的,这很奇怪。如果仅禁用选项元素上定义的事件处理程序,会发生什么情况?我在一台Win7电脑上,刚刚在Chrome、Firefox、Safari、Opera和IE9上进行了测试,但仍然存在同样的问题。尽管在第二个页面上,当我单击后退时,它显示了5个选项,而不是4个,然后是5个。我以前从未遇到过这样的问题@JordanGray即使我删除/注释了该部分,也没有任何变化:嗨,dshiga,谢谢你的回复。有一些JS可以处理select上的事件,但没有任何东西可以动态更新选项。即使我从页面中删除了所有JavaScript,问题仍然存在。当然,没有问题!我仍然认为JS一定是在以某种方式删除选项。否则,为什么禁用JS可以解决问题?有没有可能有一些JS是你在尝试将其全部删除时忽略的?另外,如果删除所有JS,然后禁用JS会发生什么?如果没有剩余的JS,那么禁用JS应该没有任何效果。@Stuart我非常同意@dshiga;我昨天签入了inspector,当选项在原始源代码中时,它们就从生成的DOM中消失了。这里发生了一些愚蠢的事情,我只是不知道在哪里。嗨,dshiga,谢谢你的回复。有一些JS可以处理select上的事件,但没有任何东西可以动态更新选项。即使我从页面中删除了所有JavaScript,问题仍然存在。当然,没有问题!我还是
我想JS一定是在删除选项。否则,为什么禁用JS可以解决问题?有没有可能有一些JS是你在尝试将其全部删除时忽略的?另外,如果删除所有JS,然后禁用JS会发生什么?如果没有剩余的JS,那么禁用JS应该没有任何效果。@Stuart我非常同意@dshiga;我昨天签入了inspector,当选项在原始源代码中时,它们就从生成的DOM中消失了。这里发生了一些愚蠢的事情,我只是不知道在哪里。