내가 라디오 버튼 컨트롤이 내 자바 스크립트에서, 내가 자바 스크립트 getElementsByName()
visualforce selectRadio --- Javascript를 통해 참조를 얻는 방법?
를 통해 무선 입력의 배열을 얻으려고 첫 번째 경고 : alert(radioTitleDisplay);
반환 [object HTMLCollection]
두 번째 경고를하지만, 해고하지 않는다. Firebug 보고서
라디오 버튼에 액세스하려면 어떻게해야합니까? 내가 놓친 게 있니? (나는 차일 루트에서 각 태그에 ID를 할당 할 수 있지만, 나는 구조를 변경하는 경우부터, 내가 rubust하지 않은 너무 ID를 변경해야 그렇게하고 싶지 않아요.)
<apex:form >
<apex:selectRadio value="{!titleDisplay}" id="titleDisplayRadio">
<apex:selectOption itemValue="0" itemLabel="one" />
<apex:selectOption itemValue="1" itemLabel="two" />
<apex:selectOption itemValue="2" itemLabel="three" />
<script type="text/javascript">
var radioTitleDisplay = document.getElementsByName('{!$Component.titleDisplayRadio}');
alert(radioTitleDisplay);
alert(radioTitleDisplay.options);
</script>
</apex:selectRadio>
</apex:form>
은 렌더링 visualforce 페이지 중 하나는 입력 태그입니다 :
<input type="radio" value="2" id="thePage:j_id27:titleDisplayRadio:2"
name="thePage:j_id27:titleDisplayRadio">
동의를하지만, 문제는 동적으로 $ 구성 요소의 사용 생성되는 같아요 그래서 SF는 요소의 ID를 수정하는 것입니다 접근법은 위에서 설명한 것처럼 나를 위해 작동하지 않는 것 같습니다. 단순한 변수라면 요소에 대한 참조를 얻을 수 있습니다. 위와 같은 배열의 경우에는 참조를 얻는 방법을 실제로 파악할 수 없습니다. –
예, 그렇지만 $ Component 출력에 반영됩니다. 모든 것이 여러분의 코드에서 괜찮은 것입니다. 요소가 단일 DOM 객체가 아니라는 사실을 깨달을 필요가 있습니다. 항상 컬렉션을 얻을 수 있습니다. JS에서 수행하려는 모든 작업은 컬렉션 요소, 즉 html dom의 작동 방식, salesforce와는 관계가 없습니다. – mmix
통찰력에 감사드립니다. 샘플 코드를 제공 할 수 있습니까? 내 접근 방식이 작동하지 않는 이유는 아직 명확하지 않습니다. –