javascript - 在打开时更改下拉列表的内容?

标签 javascript browser drop-down-menu

我有一个下拉列表,其中填充了一些项目。当用户选择其中之一时,我希望下拉列表保持打开状态并重新填充新项目。然后用户选择其中之一,最后关闭下拉菜单。

可以用 JavaScript 实现吗?如果是这样,怎么做到的?

最佳答案

为了科学!我已经创建了一个替代答案来测试这个。你可以查看this fiddle包含此 HTML:

<select id="y">
    <option>click to open dropdown</option>
    <option>do not choose this!</option>
</select>

以及以下 Javascript:

var t = 10;

var x = window.setInterval(function() {
    console.log(--t);
    if (t === 0) { act(); }
}, 1000);

function act() {
    var select = document.getElementById('y');
    var newOption = document.createElement('option');
    newOption.innerHTML = "this option will not appear if the select is open while it's added";
    select.appendChild(newOption);
}

如果您打开下拉菜单并保持打开直到计时器到期,您将看到以下行为:

  • ✗ Chrome 29:选项在重新打开之前不可见 + 下拉菜单适应新选项的宽度;
  • ✗ IE10/9/8:与 Chrome 29 相同 + 强制折叠打开的下拉列表
  • ✓ Firefox 23:添加选项无需重新打开 + 调整新选项的宽度

关于javascript - 在打开时更改下拉列表的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5347672/

相关文章:

javascript - Ruby on Rails 使用 OR 查找

java - 在 SWT 浏览器小部件中禁用拼写检查

css - 为什么我的 CSS 下拉菜单在 IE7 中的 DIV 后面打开?

javascript - 如何在 JS 中缩放 Sprite 图片

javascript - 我如何等待 GULP4 SERIES 中的任务

javascript - 如何轻松使用Facebook API实时更新功能?

python - 如何在不实例化新驱动程序的情况下使用 Selenium 切换 Firefox 配置文件?

javascript - 如何区分浏览器返回和用户手动更改位置哈希

php - 如何根据表mysql更改下拉菜单

html - Twitter bootstrap 下拉事件导航创建一个白色区域并且看起来很奇怪