2013-05-30 2 views
2

간단한 자바 스크립트이지만 작동하지 않는 것 같습니다.가변 필드 이름이 포함 된 JavaScript 양식 값

var number = 5; 
var netiteration = "net"+number; // makes netiteration now equal net5 

var formvalue = document.forms.myformname.netiteration.value; 

"myformname"형식으로 이름/id가 "net5"인 양식 필드의 값을 가져 오는 이유는 무엇입니까?

또한 10 년 된 자바 스크립트 책에서 작업 중이므로 구문이 변경되었을 수 있습니까?

감사

+0

는 당신이 시도 않았다

<input type='text' id='myfield1' onclick="Example(1)"> <input type='text' id='myfield2' onclick="Example(2)"> 

는 다음 자바 스크립트에서 당신에 의해 변수로 필드를 참조를 'document.getElementsByName (netiteration) [0] .value' – adeneo

답변

7

시도 :

var number = 5; 
var netiteration = "net"+number; // makes netiteration now equal net5 

var formvalue = document.forms.myformname[netiteration].value; 

원래 코드는 "netiteration"라는 필드를 찾고 있었다하지만 netiteration의 평가 값과 동일한 이름을 가진 필드를 원한다.

+0

좋은 설명. – crush

+0

예! 너 미용. 고맙습니다! – Lan

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가에 '순'이름을 가진 모든 요소를 ​​가지고 작업을해야 다음과 같은

뭔가 ... ...

희망이 당신의 문제를 해결 ..

0

다른 사람이 유용하다고 생각하면 몇 가지 추가 정보로이 기능을 향상시킬 수 있다고 생각했습니다.

당신이 당신의 양식 필드에 ID를 사용하는 경우, 당신은 또한 그런 식으로 참조 할 수 있습니다 :

function Example(myvar){ 
    var myvalue=document.getElementById('myfield'+myvar); 
    console.log('The value is '+myvalue); 
}