带数组的输入标签

时间:2010-06-16 18:04:35

标签: javascript

最近我正在做一个我遇到一个奇怪问题的项目。

这是以前的程序员做MPAN的程序:

<input name="mpan[]" id="mpan[]" value="" maxlength="2" size="2" >//this one to read
<input name="mpan[]" id="mpan[]" value="" maxlength="3" size="3">
<input name="mpan[]" id="mpan[]" value="" maxlength="3" size="3">
<input name="mpan[]" id="mpan[]" value="" maxlength="3" size="3">
<input name="mpan[]" id="mpan[]" value="" maxlength="3" size="3">//this one to read

我必须从 javascript 中读到它:

1)document.getElementByName("mpan").value ==&gt;不读脚本不起作用 2)document.getElementByName("mpan[]").value ==&gt;先阅读一个 3)document.getElementByName("mpan[0]").value ==&gt;脚本不起作用 4)document.getElementByName("mpan[3]").value ==&gt;脚本不起作用 5)document.getElementByName("mpan[]")[3].value ==&gt;不工作

有人可以告诉我如何从 javascript 程序中读取这些内容吗?

5 个答案:

答案 0 :(得分:2)

在HTML中,ID必须是唯一的。因此,对多个元素使用相同的ID是错误的。

为列表中的每个元素使用不同的ID。据说你正在使用PHP解析POST(或GET)数据,这样你就可以毫无问题地保留相同的name(mpan [])。

此外,ID只能由某些字符组成;来自W3C HTML建议:

  

ID和NAME令牌必须以a开头   信([A-Za-z]),可以遵循   任意数量的字母,数字   ([0-9]),连字符(“ - ”),下划线   (“_”),冒号(“:”)和句号   (”。”)。

答案 1 :(得分:1)

document.getElementsByTagName("input")[0].value

document.getElementsByTagName("input")[1].value

document.getElementsByTagName("input")[2].value

document.getElementsByTagName("input")[3].value

答案 2 :(得分:0)

一个值得注意的事情是id必须唯一到每个元素,因此document.getElementById('mpan')不应该有效。

您的字段名称可以相同。因此,如果您想根据名称找到元素,您可以这样做:

document.getElementsByName('mpan[]')[0].value;

答案 3 :(得分:0)

id只是一个字符串,不要被“[]”欺骗,假设这是一个数组,没有什么可以使id属性的值(或任何其他)具有JavaScript中的含义。

<a id="throw('don't click me bro');" href="about:blank">This should be OK too</a>

除了id s应该是unique in the document

答案 4 :(得分:0)

这应该有效

  function ReadLines() {
            var x = document.getElementsByName("mpan[]");
            alert(x[3].value);
        }