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

时间:2011-03-18 03:14:37

标签: javascript browser drop-down-menu

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

可以用JavaScript完成吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:1)

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

<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 +相同,它会强行打开已打开的下拉列表
  • ✓Firefox23 :添加选项,无需重新打开+调整新选项的宽度

答案 1 :(得分:0)

使用a custom one替换原生控件时不是没有。