【问题标题】:leave the <select> object expanded after selection选择后使 <select> 对象保持展开
【发布时间】:2011-09-16 10:27:15
【问题描述】:

我不确定这是否可能,但我想在选择后使用 JavaScript、JQuery 保留 HTML &lt;select&gt; 对象。有什么想法吗?

编辑

我想要的是那个;如果用户从选择列表中选择更多选项,我将添加更多选项来选择元素并使其保持打开状态。如果用户选择更多选项以外的其他内容,我将折叠列表。我可以使用其他功能,但这里唯一的问题是保持选择元素打开。

【问题讨论】:

    标签: javascript jquery html select drop-down-menu


    【解决方案1】:

    这是不可能的。您必须实现一些看起来和工作起来都像本机 &lt;select&gt; 的东西,但它也具有您想要的功能。

    edit — 检查克林先生的回答;可能有办法让这项工作发挥作用。

    【讨论】:

    • 是的,但@Felix Kling 的回答不是我想要的。到目前为止,你的方式似乎是唯一的方式
    【解决方案2】:

    你可以非常接近这个:

    $('#selectID').change(function(){
        $(this).attr('size', $(this).children().length);
    });
    

    size attribute 指定显示多少选项(默认为0)。

    DEMO

    您可能需要进行一些测试,这是否适用于每个(最近的)浏览器。但 imo 这比尝试模拟选择框(屏幕阅读器等)要好。

    【讨论】:

    • 我认为浏览器只在“多个”为真时才关注“大小”,但这是一个可能的想法——你可以“伪造”单选行为,也许......跨度>
    • 嗯,在 jsfiddle 上试一试。坚持住。
    • @Pointy:目前在 Chrome 中工作。但文档还说:浏览器不需要将选择元素呈现为滚动列表框。因此它可能无法在任何地方工作......
    • 哎呀,我对“多个”的事情显然是错误的;很奇怪,前几天我只是在搞砸……生活和学习。
    • ooooww :s 它使它成为列表框 :s 不是我要找的东西,但仍然是一个选择。为此 +1。
    【解决方案3】:

    您不能使用 JavaScript 扩展选择元素。您可以使用多选,但这可能不是您想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-07
      • 2019-11-15
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2019-01-19
      • 1970-01-01
      相关资源
      最近更新 更多