getelementsbyname没有返回任何值

时间:2012-12-17 05:30:21

标签: input getelementsbyname

我花了一整天阅读教程,但似乎无法找到这个基本问题的答案。

我想要做的就是访问输入字段的值。我已经制作了一个基本存根来尝试自学。所需的行为是,当我单击“提交”按钮时,我应该收到一个警告,其中包含数字字段“points”的值。但是,当我将以下代码放入我的网站时,然后单击“提交”按钮,没有任何反应。

<script type="text/javascript">
    function checknumber()
    {
        var testnumber=document.getelementsbyname("points").value;
        alert(testnumber);
    }
</script>
<input type="number" name="points" value="1">Points<br>
<input type="submit" onclick="checknumber();">

我做错了什么?

顺便说一句,如果我删除了“getelementsbyname”这一行,并按如下方式更改脚本:

function checknumber()
{
    var testnumber="hello world";
    alert(testnumber);
}

然后一切正常,我得到了一个警告弹出窗口,文本“hello world”完全符合预期。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:7)

因为getElementsByName会返回HTMLCollection。所以你必须使用:

function checknumber()
{
    var testnumber=document.getElementsByName("point")[0].value;
    alert(testnumber);
}

function checknumber()
{
    var testnumber=document.getElementsByName("point")[0].value;
    alert(testnumber);
}

Here's the demo(单击“使用JS运行”,输入任意数字并单击按钮;将弹出警报。)