2014-04-21 3 views
0

그래서, 대화식 퀴즈를 만들고 메신저를 거의 만들려고합니다. 응답 확인 부분 만 비참하게 실패합니다. 질문, 옵션 및 올바른 대답을위한 배열이 있지만 비교는 계속 실패합니다. 자바 스크립트 문자열 비교

function check(clicked_id) 
{ 
    document.getElementById("Question").value=" " + questionArray[i]; 
    document.getElementById("OptionA").value=" " + aArray[i]; 
    document.getElementById("OptionB").value=" " + bArray[i]; 
    document.getElementById("OptionC").value=" " + cArray[i]; 
    document.getElementById("OptionD").value=" " + dArray[i]; 

    var selected = document.getElementById(clicked_id).value; 
    var answer = answerArray[i]; 

    document.getElementById("text").innerHTML = answer + "<br>" + selected; 

    if (selected == answer) { 
     document.getElementById("comparison").innerHTML = "Correct"; 
    } else { 
     document.getElementById("comparison").innerHTML = "Wrong"; 
    } 
} 

하고 HTML 부분은 한번도 못해 작업을 추론 무엇을 위해

<input onclick="check(this.id)" type="button" value="Click here to start" id="Question" /><br><br> 
<input onclick="check(this.id)" type="button" value="" id="OptionA" /> 
<input onclick="check(this.id)" type="button" value="" id="OptionB" /> 
<input onclick="check(this.id)" type="button" value="" id="OptionC" /> 
<input onclick="check(this.id)" type="button" value="" id="OptionD" /> 
<div id="text"></div> 
<div id="comparison"></div> 

내가 이유를 이해 해달라고.

+7

'i'는 어디에 정의되어 있습니까? –

+0

중단 점을 연결하고'selected' 변수와'answer' 변수에 예상 한 값이 있는지 확인하십시오. 코드를 더 이상 보지 않고 그냥 추측하고 있습니다. [피들] (http://jsfiddle.net/)에 넣을 수 있습니까? –

+1

테스트가 질문에 대한 div를 표시하고 대답을 숨기고 다른 질문을 표시 한 것처럼 보이는 경우 각 개별 div의 모든 옵션에 동일한 ID를 사용하면이 코드가 실패합니다. –

답변

1

값 앞에 공백을 추가하는 것처럼 보이지만 비교하기 전에 공백을 제거하지 마십시오. 적어도 당신이하는지 나는 볼 수 없다. 이 시도.

var selected = document.getElementById(clicked_id).value.trim(); 
0

비교 중에 두 값을 모두 트림해야합니다. 이 같은.

if (selected.trim() == answer.trim()) { 
    document.getElementById("comparison").innerHTML = "Correct"; 
} else { 
    document.getElementById("comparison").innerHTML = "Wrong"; 
}