2014-07-08 2 views
2

답변을 알아야 할 것 같지만 막상받을 수 없습니다. 큰 폼이 있고 일부 질문에는 체크 박스가 있습니다. 나는 그 특정 질문에 대한 각각의 체크 박스를 반복 할 수 있어야하고 체크 된 것들에 대해서는 배열에 저장할 필요가있다. 기존 코드로 작업하기 때문에 자바 스크립트를 사용해야합니다. 여기 제가 시도한 한 가지 예가 있습니다 :자바 스크립트의 체크 박스를 반복합니다.

<input type="checkbox" name="CAT_Custom_15" id="CAT_Custom_15_0" value="Bareboat charters"> 
<input type="checkbox" name="CAT_Custom_15" id="CAT_Custom_15_1" value="charters"> 
<input type="checkbox" name="CAT_Custom_15" id="CAT_Custom_15_2" value="Ferry"> 

<script> 
var theForm = document.getElementById('OMRForm'); 
var i; 
var selectArray = []; //initialise empty array 
for (i = 0; i < theForm.CAT_Custom_15.length; i++) { 
    if(theForm.CAT_Custom_15.elements[i].type == 'checkbox'){ 
     if(theForm.CAT_Custom_15.elements[i].checked == true){ 
      selectArray.push(theForm.CAT_Custom_15.elements[i].value); 
      alert(theForm.CAT_Custom_15.elements[i].value); 
     } 
    } 
} 
</script> 

나는 너무 오래 그것이 내가 어딘가에서 실수를했음을 확신합니다. 도와주세요!

+0

, 내가 ' 그들을 참조했지만 여전히 ge 할 수 없었다. 내 코드가 작동합니다. 그래서 내가 여기에 게시하는 이유입니다. –

답변

2

theForm.CAT_Custom_15은 자체가 .elements 속성에있는 것이 아니라 <input>을 포함하는 모음입니다. 그래서

type 조건, 예를 들어 있어야한다 :

if(theForm.CAT_Custom_15[i].type == 'checkbox'){ 

대 :

if(theForm.CAT_Custom_15.elements[i].type == 'checkbox'){ 

for (i = 0; i < theForm.CAT_Custom_15.length; i++) { 
    if(theForm.CAT_Custom_15[i].type == 'checkbox'){ 
     if(theForm.CAT_Custom_15[i].checked == true){ 
      selectArray.push(theForm.CAT_Custom_15[i].value); 
      alert(theForm.CAT_Custom_15[i].value); 
     } 
    } 
} 
그것은 가능성이 높습니다

http://jsfiddle.net/9w9T5/

+0

하하, 나는 그것을 보지 못했다고 나는 믿을 수 없다. 그것이 모두 필요한 것입니다. 방금 테스트를 실행했고 체크 된 모든 체크 박스를 표시했습니다. 당신은 생명의 은인입니다. 이제 마감일을 정할 수 있습니다! 우리가 만난다면 나는 맥주를 사줄거야. –

관련 문제