使用JavaScript </select>填写<select>

时间:2014-08-24 23:51:48

标签: javascript html forms

所以我想在我的表单中添加一个下拉列表,显示从1到999的数字。 我试过用JS做它,但它不起作用 这是我到目前为止所尝试的:

<html>
<head>
<script>
window.onload = fillDropDown(); 

function fillDropDown() { 
var ddl = document.getElementById( 'myDropdown' ); 
var theOption = new Option; 
var x; 
var i; 

for(i = 0; i < 999; i++) { 
x = i + 1; 
theOption.text = x; 
theOption.value = x; 
ddl.options[i] = theOption; 
} 
} 
</script>
</head>
<body>
<form id="myForm"> 
<select id="myDropdown"></select> 
</form>
</body>

但它不起作用。 这是一个jsfiddle示例http://jsfiddle.net/j3nLxptn/

2 个答案:

答案 0 :(得分:3)

如果你在循环中实例化选项,它会起作用:

 for (i = 0; i < 999; i++) {
        var theOption = new Option;
        x = i + 1;
        theOption.text = x;
        theOption.value = x;
        ddl.options[i] = theOption;
    }

请参阅http://jsfiddle.net/j3nLxptn/1/

答案 1 :(得分:0)

问题是您总是重复使用相同的选项元素。您必须在每次迭代时创建一个新的Option实例,并且可以使用add实际附加选择选项。

另请注意,Option构造函数可以使用textvalue个参数。

for (i = 0; i < 999; i++) {
    x = i + 1;
    ddl.add(new Option(x, x), null);
}