简单的javascript但似乎无法让它工作。
var number = 5;
var netiteration = "net"+number; // makes netiteration now equal net5
var formvalue = document.forms.myformname.netiteration.value;
为什么不以“myformname”的形式获取名称/ id为“net5”的表单字段的值?
另外,我正在使用一本10年前的javascript书,所以语法可能已经改变了吗?
感谢
答案 0 :(得分:6)
尝试:
var number = 5;
var netiteration = "net"+number; // makes netiteration now equal net5
var formvalue = document.forms.myformname[netiteration].value;
您的原始代码正在寻找名为“netiteration”的字段,但您希望名称等于netiteration评估值的字段。
答案 1 :(得分:0)
这不起作用,因为netiteration是一个变量,你不能在HTML的DOM结构中使用变量名。
像下面这样的东西应该起作用....var form_elements = document.forms.myformname.getAllChildren();
var net_elements = new Array[10];
for(var i=0;i<form_elements.length;i++)
{
var name = form_elements[i].name;
if(name.indexOf('net') != -1)
net_elements[i] = form_elements[i];
}
现在,arraynet_elements包含名为'net'的所有元素......
希望这能解决你的问题...
答案 2 :(得分:0)
遇到这种情况并认为我会用一些额外的信息来增强它,以防有人发现它有用。
如果您在表单字段中使用id,则也可以引用该方式:
<input type='text' id='myfield1' onclick="Example(1)">
<input type='text' id='myfield2' onclick="Example(2)">
然后在您的Javascript中,您使用变量引用该字段:
function Example(myvar){
var myvalue=document.getElementById('myfield'+myvar);
console.log('The value is '+myvalue);
}