获取所选DropDown菜单选项的值

时间:2014-03-08 16:56:26

标签: javascript drop-down-menu

所以我知道有很多关于此的帖子,我已经阅读了它们,但是之前的帖子中推荐的解决方案都没有用。

我有一个动态创建下拉菜单的功能。这是:

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;

那么我做错了什么?

2 个答案:

答案 0 :(得分:1)

错误

Cannot read property 'options' of null

表示aa.options[a.selectedIndex].value为空。

由于您的元素为id="mm",请检查是否:

  • 某些脚本已劫持window.document
  • 某些脚本已劫持document.getElementById
  • 某些脚本已删除您的选择,或已更改其id
  • 在将select加载到DOM之前使用var a = document.getElementById("mm")

可能是最后一个,尝试在onload事件中运行代码,或者在关闭</body>之前放置脚本。

答案 1 :(得分:0)

尝试使用此代码

var month = a.options[a.selectedIndex-1].value;
相关问题