2016-11-20 3 views
-5

그래서이 프로젝트는 학교에서 시작되었습니다. 나는 코드에서 볼 수 있듯이 자바 스크립트의 초보자이고, 나는 다소 붙어있다. 우선, 나는 당신이 대답하기를 원하는 질문의 양을 소개해야하는 퀴즈를 만들고 싶다. 그런 다음 그 질문에 대답한다. 처음에는 무작위로 7 개의 질문을 선택하여 테스트했습니다. 문제는 내가 3 개 이하의 질문을 소개 할 때 잘 작동하지만 더 이상 (+3 < = 7) 이상한 오류가 발생합니다. index.html? fname = 3 : 103 잡히지 않은 TypeError : 읽을 수 없습니다. undefined (...)의 'checked'속성입니다. 내 어리 석음 당신을 distrubing에 대한자바 스크립트/Html 체크 박스 오류

My code

임 미안 : 여기 내 코드입니다! 좋은 하루 되세요! 추신 : 나는이 코드가 끝나지 않았다는 말을 잊어 버렸습니다. (아직도 스타일이 필요합니다.) 그래서 저를 판단하지 마십시오.

+0

안녕하세요, Ciocirlan, Welcome to StackOverflow. 질문과 함께 관련 코드의 스 니펫을 제공해주십시오. 외부 링크의 코드가 만료되어 유사한 문제가있는 다른 스택 사용자가 스레드를 쓸모 없게 만들 수 있습니다. 환호 –

+0

방금 ​​스택을 사용하기 시작했고, 나도 알아, 내 나쁜. 나는이 사이트가 어떻게 작동 하는지를 배우게 될 것입니다. –

답변

0

코드의 68 번째 줄에 y을 사용자가 요청한 질문의 수로 설정합니다. 당신이 4 개 질문을 요청하는 경우,이 루프는 한 i로를 계속 실행합니다 : 여기에 발생하는 상황

for(var i=0; i<y; i++){ 
    if(choices[i].checked){ 
     choice = choices[i].value; 
    } 
} 

:

y=document.getElementById("myForm").elements[0].value; 

이 루프 (라인 102에서 시작)는 오류에서 오는된다 i이 3이면 if 문이 choices[3].checked에 액세스하려고 시도합니다. 인덱스는 0부터 시작하기 때문에 choices[3]이 배열의 4 번째 항목이라는 것을 기억하십시오. 각 질문에는 3 가지 선택 사항 만 있으므로 4 번째 질문을하면 undefined이됩니다.

그러나이 루프가 총 질문 수에 관계없이 각 질문에 대해 3 개의 대답 만보고 싶습니다. 당신이 쓰려고했던 것은 다음과 같습니다 :

for(var i=0; i<3; i++){ 
    if(choices[i].checked){ 
     choice = choices[i].value; 
    } 
}