2017-12-15 3 views
0

이것은 수학 문제를 발생시키는 if 문을 실행합니다. 사용자에게 얼마나 많은 질문을 던지 묻는 질문이 있지만 실행시 사용자가 첫 번째 질문에 대한 답변을 기다리지 않고 동시에 생성합니다 질문을 내린 다음 내부 HTML을 지 웁니다. 한 번에 모두 생성하고 if 문을 사용하여 질문에 올바르게 대답 할 때까지 기다리는 것을 막을 수있는 방법이 있습니까?이 스크립트를 여러 번 실행하지 않고 스크립트가 응답 할 때까지 기다리는 방법은 무엇입니까?

  if(equation == "Addition(+)"){ 
       number = document.getElementById('problems').value; 

       for(var i = 0; i<number; i++){  
       var inputedanswer = 
       document.getElementById('answerfield').value; 
        //Creates addition problem 
       a = Math.floor((Math.random() * 20) + 1); 
       b = Math.floor((Math.random() * 20) + 1); 

       if(inputedanswer == null){ 
        //Trying to make it run only once 
       var answer = (parseInt(a) + parseInt(b)); 
       //Creates question using the Math Random above 
       var p = document.createElement('p'); 
       var text = document.createTextNode(a + " + " + b + " = ") 
       p.appendChild(text); 
       document.getElementById('question').appendChild(p); 
       //Creates radio buttons for answers 
       var select = document.createElement('input'); 
       var submit = document.createElement('button'); 
       document.getElementById('answerfield').appendChild(select); 
       document.getElementById('submit').appendChild(submit); 
       submit.innerHTML = "Check Answer"; 
       //Submitting answer and checks if it is correct 
      submit.onclick = function(){ 
       if(select.value != answer){ 
        alert("I am sorry but that is not the correct answer, Please try again!"); 
       } 
       else{ 
        alert("That's correct!"); 
        document.getElementById('field').innerHTML = ""; 
        //Ask Erickson 
       } 
      } 
     } 
       } 
      } 
+0

을 그들에게 전화 . 지금 당장은 문제의 전체적인 맥락없이 도움을주기가 어렵습니다. 작동하는 코드 스 니펫을 만들어보십시오. https://stackoverflow.com/help/mcve –

+0

사용자가 첫 번째 질문에 응답 할 때 두 번째 질문이 나타나면 사용자가 두 번째 질문에 응답하면 세 번째 질문이 나타납니다. –

답변

-1

기능에 넣은 다음 질문에 대답하면 기능을 호출합니다.

if(he answers the question) { 
    waitForQuestion(); 
} 





function waitForQuestion(){ 
      if(equation == "Addition(+)"){ 
       number = document.getElementById('problems').value; 

       for(var i = 0; i<number; i++){  
       var inputedanswer = 
       document.getElementById('answerfield').value; 
        //Creates addition problem 
       a = Math.floor((Math.random() * 20) + 1); 
       b = Math.floor((Math.random() * 20) + 1); 

       if(inputedanswer == null){ 
        //Trying to make it run only once 
       var answer = (parseInt(a) + parseInt(b)); 
       //Creates question using the Math Random above 
       var p = document.createElement('p'); 
       var text = document.createTextNode(a + " + " + b + " = ") 
       p.appendChild(text); 
       document.getElementById('question').appendChild(p); 
       //Creates radio buttons for answers 
       var select = document.createElement('input'); 
       var submit = document.createElement('button'); 
       document.getElementById('answerfield').appendChild(select); 
       document.getElementById('submit').appendChild(submit); 
       submit.innerHTML = "Check Answer"; 
       //Submitting answer and checks if it is correct 
      submit.onclick = function(){ 
       if(select.value != answer){ 
        alert("I am sorry but that is not the correct answer, Please try again!"); 
       } 
       else{ 
        alert("That's correct!"); 
        document.getElementById('field').innerHTML = ""; 
        //Ask Erickson 
       } 
      } 
     } 
       } 
      } 
} 
0

이 모든 것을 한 가지 방법으로 수행 할 수 있을지는 의문입니다. 특정 이벤트 리스너에 연결된 다른 메소드 (아래 목록 참조)로 분할해야합니다. 사용자가 대답하기 위해 질문 목록을 받아야하는 것으로 보입니다. 그가 대답 할 때, 그것은 틀렸거나 틀린 것으로 표시되어야합니다. 무엇이 절차에 대한

:
1) 그가 대답하고 싶어 얼마나 많은 질문을 사용자에게 물어
->
2)가에 따라 질문의 수를 준비 "테스트 시작"클릭 사용자의 입력은 배열에 저장
3) 구문 분석 HTML에 대한 모든 질문 (한 항목은 = 작업 +는 + 솔루션 답변)
-> 확인 답변, 그것은 잘 여부, 쇼 결과

주어졌다 때3210

물론이 절차를 필요에 맞게 변경할 수 있습니다. 또한 요청한 질문의 개수를 물어보고 변수로 저장 한 다음 항상 질문을 생성하고 HTML로 표시하고 대답을 기다린 후 (버튼 클릭) 답변을 확인하고 해결책을 제시하고 충분한 질문이있을 때까지 다음 질문으로 이동하십시오 보여 주었다.

무슨 일이 있어도 그것은, 최소 완료하고 검증 가능한 예제를 포함하는 가장 좋은 것입니다, 여러 방법을 사용하고 사용자가 (예를 들어, 버튼을 클릭하거나 답변을 제공합니다) 무언가를 경우에만