2011-01-19 4 views
3

javascript와 관련된 문제로 인해 다음 작업을 수행하여 팝업 창을 닫고 상위 창에서 필수 값으로 필드를 업데이트합니다.자바 스크립트 오류를 ​​일으키는 div id의 하이픈

나는 다음과 같은 오류를 얻고있다 그러나
<script language="javascript" type="text/javascript"> 
    var FieldID = document.form.field22-1.value; 
    self.parent.opener.document.+FieldID = 'some text'; 
    window.top.window.close(); 
</script> 

가 :

Error: missing ; before statement 

내가 자바 스크립트는 뺄셈에있는 것으로 id 필드 (field22-1를) 해석되는 느낌이 재미있는 코드는 다음과 같이 보입니다 그것. 나는 그것이 맞는 것 같아. 어떤 아이디어/도움이 엄청나게 감사하게 될 것입니다, 정말로 돌아가서 코드를 변경해야하는 것을 원하지 않습니다!

미리 감사드립니다.

+0

요소를 직접 가져 오지 마십시오. 단지 문제를 일으킨다. (보시다시피) –

답변

6

대신 document.getElementById('field22-1').value을 사용하십시오.

또한이 해결해야 할 수 있습니다

self.parent.opener.document[FieldID] = 'some text'; 
+0

아, 내가 DetElementById를 사용해야한다는 것을 알아야 했어! 당신이 하루 종일 JavaScript hell에서 얻은 것 같아요. 현실에서 나는 (어느 정도까지) 싫어합니다! 그럼에도 불구하고 나는 모든 realted 생각하는 다른 이유하지만 오류를 받고 ... 여기에 일부 조정으로 – rich

+0

이 결과 : \t \t <스크립트 언어 = "자바 스크립트"유형 = "텍스트/자바 스크립트"> \t \t \t VAR fieldID가 = self.parent.opener.document.getElementById ("field22-0"); \t \t \t FieldID.value = 'some content'; \t \t \t window.top.window.close(); \t \t 간단한 방법을 아는 순간! 친구들! – rich

1

당신은 자바 스크립트에서 document.getElementById('field22-1').value

3

를 사용할 수있는 객체 속성 중 하나를 점 표기법, 예를 통해 액세스 할 수 있습니다 foo.bar 또는 대괄호 표기법 (예 : foo["bar"]. 당신의 재산은 법적 식별자 (귀하의 경우와 같이)이 아닌 경우 후자가 필요하다 :

var FieldID = document.form["field22-1"].value; 

다른 방법이 실제 id 속성이있는 경우, 당신은 사용해야합니다

var FieldID = document.getElementById('field22-1').value; 
2

을 당신은 또한 수 document.form['field22-1'].value을 사용하십시오.

관련 문제