【问题标题】:Hiding option in dropdown在下拉菜单中隐藏选项
【发布时间】:2015-09-19 18:04:36
【问题描述】:

我正在尝试使用“隐藏”属性有选择地隐藏下拉列表中的选项。请查看jsfiddle,我在其中隐藏了“最安静”选项。

$('#quietest').prop('hidden', 'hidden');

单击下拉列表中的箭头时,“最安静”选项被成功隐藏(仅列出“最快”和“平衡”),但是,用户仍然可以使用键盘选择“最安静”选项。这是“隐藏”属性的预期行为吗?如何正确隐藏使其不再可选择?取消隐藏选项也需要很容易(因此最好不要删除该选项)。

【问题讨论】:

  • 你会使用.show()/.hide().toggle()。不过,在某些浏览器中隐藏选项存在问题。您最好使用.prop('disabled', true|false) 启用/禁用该选项
  • @chiapa 解决方案将适用于您,如果您想阻止选项选择而不是隐藏。但是禁用的选项仍然会显示在下拉列表中。如果您想同时获得两者,请尝试在需要时删除选项并在需要显示时附加。

标签: jquery html arrays hidden


【解决方案1】:

你可以这样试试:

Fiddle - hiding with hidden property

$('#quietest').prop('disabled', true).prop('hidden', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="dptcentres_edit">
    <option value="fastest">Fastest</option>
    <option selected="true" value="balanced">Balanced</option>
    <option id='quietest' value="quietest">Quietest</option>
</select>

编辑

由于@billyonecan 的评论,我替换了隐藏方法,而不是使用hidden 属性,而是使用CSS display 属性并将其设置为none 以隐藏元素。正如他正确指出的那样,hidden 属性 isn't supported by all browsers

Fiddle - Hiding with CSS display attribute

$('#quietest').prop('disabled', true).css('display', 'none');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="dptcentres_edit">
    <option value="fastest">Fastest</option>
    <option selected="true" value="balanced">Balanced</option>
    <option id='quietest' value="quietest">Quietest</option>
</select>

【讨论】:

  • 你最好使用.hide()hidden属性isn't supported by all browsers
  • 请注意,您仍然可以在键盘上键入并选择隐藏的值。请参阅 Raja 的回答。
  • 在 Microsoft Edge 中,两个 Fiddle 都显示一个空格而不是隐藏选项。适用于 Chrome。 (Microsoft Edge 44.17763.831.0)
【解决方案2】:

要停止被选中,请同时添加disabled

$('#quietest').prop('disabled', true).hide();

【讨论】:

    【解决方案3】:

    使用hide。通过隐藏option,它无法被选中。

    $('#quietest').hide().prop('disable', true);
    

    DEMO

    【讨论】:

    • 这个还是有问题的。您可以通过箭头键选择最安静的。
    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多