【发布时间】:2023-03-05 20:48:01
【问题描述】:
所以我知道有很多关于此的帖子并且我阅读了它们,但是之前的帖子中推荐的解决方案不起作用。
我有一个动态创建下拉菜单的功能。这里是:
function date(start, end) {
output ="";
for(i=start;i<=end;i++)
{
output += "<option value='"+i+"'>"+i+"</option>";
}
document.write(output);
}
我这样称呼它:
Month:
<select name="mm" id="mm" disabled onchange="activateDate();">
<script type="text/javascript">
date(1,12);
</script>
</select>
注意:activateDay 只是更改下一个下拉菜单中禁用的属性,因为您应该先选择一年,然后是一个月,然后是一天。
当我尝试获取月份的选定值以便我可以给一个月的天数(1 月 31 天,2 月 28 天)时,如下所示:
var a = document.getElementById("mm");
var month = a.options[a.selectedIndex].value;
如果我将此变量用于查找月份并返回天数的开关,那么我将天数提供给我的 date() 我会得到一个空的日期下拉菜单。 chrome 中的 Javascript 控制台这样说:
未捕获的类型错误:无法读取 null 的属性“选项”
并指出这一行:
var month = a.options[a.selectedIndex].value;
那我做错了什么?
【问题讨论】:
-
你应该避免
document.write。请参阅the spec中的警告 -
是的,我知道,但是我们的老师告诉我们要使用它,我已经听说过很多......
-
有这样的老师,我会试着拿回我的钱,然后去上另一门课
-
我在公立学校...