最近我正在做一个我遇到一个奇怪问题的项目。
这是以前的程序员做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 程序中读取这些内容吗?
答案 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);
}