为什么这个选择不开放?

时间:2010-10-17 20:46:03

标签: html select

我有一个非常简单的选择下拉菜单。在Chrome中,它不会下降。代码本身工作正常,下拉工作在Safari中,但由于某种原因它不会在Chrome中打开。这是HTML:

<select name="pellet_credit" class="item_discount">
    <option>1</option>
    <option>2</option>
    <option>3</option>
</select>

应该很简单。这是一个下拉菜单...这是选择的选定屏幕截图,但不是打开的: alt text

---编辑---

这是一个包含完整源代码的jsfiddle。下拉列表在jsfiddle视图中适用于我,但不适用于实际站点。

http://jsfiddle.net/HSYvf/

---编辑---

页面上的其他下拉工作正常。

9 个答案:

答案 0 :(得分:6)

验证您的HTML以确保没有无关的结束/结束标记。确保你没有通过CSS隐藏选项。

答案 1 :(得分:3)

我遇到了与Firefox和Chrome相同的问题,并且由于表单的z-index-1

更改z-index后,工作正常。

答案 2 :(得分:2)

当我在jQuery .sortable()元素中放置<select>时,发生了这种情况。我在jQuery网站上复制了这段代码,并且.disableSelection()方法调用杀死了我的<select>

$(function() {
    $( "#sortable" ).sortable();
    $( "#sortable" ).disableSelection();
});

一旦我删除.disableSelection();(奇怪的是他们已经弃用了......)一切正常。

答案 3 :(得分:0)

我认为您应该为您的选项设置一个值

<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

您可以阅读更多here

答案 4 :(得分:0)

我正在添加一个答案,只是为了在所选答案中调出@Agos的评论。检查您是否有可能从下拉列表中窃取事件的事件处理代码(mousedown,click等)。

答案 5 :(得分:0)

最终发生在我身上的是导致我出现在这个页面上的是显示设置为display:none;关于选项元素

溶液:

$(yourdropdown)。儿童()显示();

答案 6 :(得分:0)

问题在于我在id声明中包含了类名。

对于未来的受众,请特别注意您的select元素是否与周围的表单样式不一致。这可能是一个类没有被正确应用的线索,你可能不小心把它放在错误的位置。

答案 7 :(得分:0)

要调试此类问题,请尝试从html中删除所有属性,然后一次添加一个属性,以找出导致问题的原因。 例如,下面的代码片段无法根据需要运行。

<select size="10">
  <option value=1>1</option>
  <option value=2>2</option>
  <option value=3>3</option>
</select>

删除size属性即可解决

<select >
  <option value=1>1</option>
  <option value=2>2</option>
  <option value=3>3</option>
</select>

答案 8 :(得分:-1)

当我们开发具有列表框的客户端/服务器编程语言时,我们遇到了一个棘手的问题。尽管INPUT工作,但列表框却没有。我们对它进行了鼠标跟踪,并且默认启用了$(window).mousedown ...错误。

我们能够通过此页面跟踪问题:https://hackernoon.com/finding-that-pesky-listener-thats-hijacking-your-event-javascript-b590593f2a83

以防上述页面消失:

在Chrome中(可能还有其他Chromium风味[也适用于Opera]):

  1. 右键点击元素。
  2. 点击'检查...'
  3. 当显示“元素”时,右侧面板将显示[样式] [计算] [事件监听器](选项卡)。点击“事件监听器”。
  4. 寻找'mouseup','mousedown','keyup'等,然后展开你怀疑的内容并将其删除,看看是否能解决问题(调试)。
  5. 更改代码。
  6. 我们所做的是在代码中将'return false'更改为'return true'。