JavaScript问题:getElementsByName()对我不起作用

时间:2011-04-30 18:47:41

标签: javascript

只是尝试提醒在电话字段中输入的值,但警告未定义:

<script type="text/javascript">

function foo() {
   alert(document.getElementsByName("phone").value);
   return false;
}

</script>

<form action="foo.php" method="post" onsubmit="return foo()">
    <label>Name:</label>
    <input type="text" name="name" />
    <label>Phone:</label>
    <input type="text" name="phone" />
    <label>Email:</label>
    <input type="text" name="email" />
    <label>Message:</label>
    <textarea name="message"></textarea>
    <input type="submit" value="Submit" name="submit" />
</form>

如何让它发挥作用?另外,我读到所有主流浏览器都支持getElementsByName,这是真的吗?

4 个答案:

答案 0 :(得分:5)

document.getElementsByName(...)返回DOM元素的集合。

你试过这个吗?

document.getElementsByName("phone")[0].value

根据代码片段而不是仅使用名称,您可能希望使用ID代替。在这种情况下,您可以致电...

... HTML ...
<input type="text" id="phone" />

... Javascript ...
document.getElementById("phone").value

...检索你想要的元素。

答案 1 :(得分:0)

你得到的是元素集合,而不是一个元素。

   alert(document.getElementsByName("phone")[0].value);

答案 2 :(得分:0)

元素需要有一个id才能正常工作。例如

  <input type="text" id="phone">Phone:</input>

  document.getElementByID("phone");

答案 3 :(得分:0)

该方法不是get * Elements * ByName。它返回数组中的多个元素。

您需要的是document.getElementsByName("phone")[0].value

而不是名字,我建议使用ID。

然后你可以做document.getElementByID("phone").value