Stack Overflow em Português Asked by Ricardo Jardim Braz on November 7, 2021
Estou montando um questionário onde cada pergunta deve aparecer uma de cada vez na tela para o usuario e, assim que o usuário responder a mesma, ele deve seguir para a próxima pergunta.
Para isso estou usando um for para ir de pergunta em pergunta e uma função para montar a pergunta com as respostas possíveis conforme código abaixo:
for (let aux = 1; aux < nrPerguntas + 1; aux ++) {
montaQuestionario(aux)
}
function montaQuestionario(aux) {
pPergunta.innerHTML = perguntas(aux)
pEscala.innerHTML = ""
for ( var i= 0; i < respostas.length ; i++) {
pEscala.innerHTML = pEscala.innerHTML + `<td class="tdBorda" onclick="#"> ${respostas[i][1]} </td><td class="tdBranco"></td>`
}
}
Meu problema é que o for vai da primeira a ultima pergunta sem pausar quando vai para a função montaQuestionario() e se colocar um break ele para de correr o for.
Existe alguma forma de fazer com que o for aguarde um retorno ou ação do usuário para continuar? Esta ação ficaria dentro da função já que seria ali que o usuário faria a seleção da resposta.
Acredito que uma maneira mais facil de fazer isso seria criar funções que essenciamente agiriam como um FOR mas so seriam chamadas quando necessarias.
const botao_de_resposta = document.getElementById("idBotao"); botao_de_resposta.addEventListener("click",responderPergunta); aux = 0; proximaPergunta(a) function responderPergunta() { //Logica para ver se a resposta esta certa //... aux++ proximaPergunta(aux) } function proximaPergunta(a){ pPergunta.innerHTML = perguntas(a) //Poe a pergunta na tela //... }
Nesse caso ele checaria se a pergunta foi respondida e partiria para a próxima quando você clica no botão de responder, que eu presumo que você tenha no seu HTML.
Answered by Ricardo Cenci Fabris on November 7, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP