Javascript 如何显示自动展开的下拉列表,以便在加载页面时显示所有选项

Javascript 如何显示自动展开的下拉列表,以便在加载页面时显示所有选项,javascript,jquery,html,Javascript,Jquery,Html,我需要在加载时显示最初扩展的下拉列表(HTML选择元素),以便显示下拉列表中的所有选项。我搜索了不少,但令人惊讶的是,我没有找到这样一个简单问题的答案。我将ASP.NET MVC与jquery一起使用。这里有一个小mashup(需要调整和优化),但应该让您开始: <div style="position:relative"> <select style="position: absolute"> <option>option 1<

我需要在加载时显示最初扩展的下拉列表(HTML选择元素),以便显示下拉列表中的所有选项。我搜索了不少,但令人惊讶的是,我没有找到这样一个简单问题的答案。我将ASP.NET MVC与jquery一起使用。

这里有一个小mashup(需要调整和优化),但应该让您开始:

<div style="position:relative">
    <select style="position: absolute">
        <option>option 1</option>
        <option>option 2</option>
        <option>option 3</option>
        <option>option 4</option>
        <option>option 5</option>
    </select>
</div>

<script type="text/javascript">

$(document).ready(function() {
    $("select").one("focus", function() {
        this.size = this.options.length;
    }).one("click", function() {
        this.size = 1;
    }).one("blur", function() {
        this.size = this.options.length;
    }).focus();
});

</script>

选择1
选择2
选择3
选择4
备选案文5
$(文档).ready(函数(){
$(“选择”).one(“焦点”,函数(){
this.size=this.options.length;
}).1(“单击”,函数(){
这个尺寸=1;
}).1(“模糊”,函数(){
this.size=this.options.length;
}).focus();
});

您可以在HTML代码中编写:

   <select size="3" name="test" id="test">
      <option value="1">one</option>
      <option value="2">two</option>
      <option value="3">three</option>
   </select>

一
二
三
然后通过javascript设置一个计时器,之后将“选择框大小”属性更改为1。 例如,在页面末尾(clsed body标记之前)放置以下代码:

<script type="text/javascript">
   window.setTimeout(function() { document.getElementById('test').size = 1; }, 5000); //5000 = 5 seconds
</script>

setTimeout(函数(){document.getElementById('test').size=1;},5000)//5000=5秒

你可以这样编写你的HTML

<html>
<select id="abc">
    <option>option 1</option>
    <option>option 2</option>
    <option>option 3</option>
    <option>option 4</option>
    <option>option 5</option>
</select>

</html>

选择1
选择2
选择3
选择4
备选案文5
下面是自动扩展的JAVASCRIPT函数

<script type="text/javascript">
    $(document).ready(function() {
        var dropdown = document.getElementById("abc");
        var event;
        event = document.createEvent('MouseEvents');
        event.initMouseEvent('mousedown', true, true, window);
        dropdown.dispatchEvent(event);
    });
</script>

$(文档).ready(函数(){
var下拉列表=document.getElementById(“abc”);
var事件;
event=document.createEvent('MouseEvents');
initMouseEvent('mousedown',true,true,window);
下拉列表。dispatchEvent(事件);
});

非直接解决方案:1)让第一个选项尖叫出“选择您的国家…”或类似内容;2) 使用单选按钮。感谢您提供的解决方案。解决方案正在运行,但我必须在鼠标单击其他任何位置时将大小设置回原来的大小。但是我可以很容易地添加它。@mohang-Ah,我刚刚添加了一个
blur
事件处理程序,它使用
one
绑定一次(这可能会更整洁一些)。这足以让用户知道列表已填充。不适合我。但感谢您的努力。我希望人们能编写更多的通用示例代码,不是每个人都使用jQuery。问题是,“我正在使用ASP.NET MVC和jQuery”,它被标记为“jQuery”,函数体是通用javascript。