所以我知道有很多关于此的帖子,我已经阅读了它们,但是之前的帖子中推荐的解决方案都没有用。
我有一个动态创建下拉菜单的功能。这是:
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控制台说:
未捕获的TypeError:无法读取null
的属性“选项”并指出这一行:
var month = a.options[a.selectedIndex].value;
那么我做错了什么?
答案 0 :(得分:1)
错误
Cannot read property 'options' of null
表示a
中a.options[a.selectedIndex].value
为空。
由于您的元素为id="mm"
,请检查是否:
window.document
document.getElementById
id
var a = document.getElementById("mm")
可能是最后一个,尝试在onload
事件中运行代码,或者在关闭</body>
之前放置脚本。
答案 1 :(得分:0)
尝试使用此代码
var month = a.options[a.selectedIndex-1].value;