2009-10-01 3 views
1
 
<form name='form1'> 
    <select name='sel1'></select> 
</form> 

<script> 
    document.form1.sel1 ... //access element by it's name attribute, is this standard? 
</script> 
+0

코드를 잘 작성하고 유효한 코드를 작성해야한다고 생각하십시오. 사용 < and > –

답변

4

아니요, DOM Level 2 HTML에 HTMLDocument가 직접 속성으로 명명 된 양식을 가져 오거나 HTMLFormElement가 직접 속성으로 명명 된 요소를 얻지 못하도록 지정되어 있지 않습니다.

그러나이 동작은 JavaScript (Netscape 2)의 가장 초기 구현으로 확장되어 이후 모든 브라우저에서 복사되었으므로 모든 표준에서 공식적으로 인정되지는 않지만 "DOM Level 0"기능 중 하나입니다. 본체는 확실히 사실상 표준입니다.

나중에 브라우저가 name 속성과 충돌 할 수있는 HTMLDocument 및 HTMLFormElement (브라우저가 HTMLDocument에서 특히 과거에 정기적으로 수행 한 것처럼)에서 새 속성을 도입 할 수 있기 때문에 여전히 사용하지 않는 것이 좋습니다. 이것은 document.formsform.elements 속성에 사용되는 HTMLCollection 객체에서 발생할 가능성이 훨씬 적습니다.

더 나은 여전히 ​​당신이 참조 <form> 오프 name를두고 명확한 document.getElementById()를 사용하려면 아무것도 id을 넣어하는 것입니다.

5

올바른 구문은 다음과 같습니다

document.forms.form1.elements.sel1 

또는

document.forms["form1"].elements["sel1"] 
0

document.getElementsByName('sel1')하지? 31 분 전

그게 왜 난 항상 id 대신 name 사용 데이빗도 워드 -

는 같은 문서에서 그 이름 (컨트롤의 유사한 세트를 포함 예를 들어, 여러 형태)와 다른 요소가있을 수 있습니다. forms 배열을 사용하거나 id을 쉽게 검색 할 수 있도록 요소에 할당하는 것이 좋습니다.

+0

동일한 문서에 같은 이름의 다른 요소가있을 수 있습니다 (예 : 유사한 컨트롤 집합을 포함하는 여러 양식) – Quentin

+1

이름을 사용하지 않으면 다른 양식 사이에서 JS를 재사용 할 수 있으며, 다른 양식 오브젝트로 전환하면됩니다. :) – Quentin

관련 문제