Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thi100

Questionário javascript

Recommended Posts

Estou desenvolvendo um quiz com perguntas e respostas com vários tipos de inputs para resposta, já fiz um usando checkbox e outro usando o radio, agora tava tentando desenvolver um usando o input text, achei um código que faz o que eu quero mas ele tem uns erros como por exemplo a mensagem de erro ou acerto não some se eu apertar o botão, ele adiciona outra mensagem abaixo da existente, poderiam me ajudar a melhorar esse código ?

<form name="form1" id="form1" method="post" action="" >
    1. Bla bla bla.
    <br>
    <input name="txtResposta1" type="text" id="txtResposta1" size="60" class="resposta">
    <br>
 
    2. Blu blu blu?
    <br>
    <input name="txtResposta2" type="text" id="txtResposta2" size="60" class="resposta">
    <br>
 
    2. ZIIII?
    <br>
    <input name="txtResposta3" type="text" id="txtResposta3" size="60" class="resposta">
    <br>
 
    <br>
    <input type="button" id="button" name="button" value="Corrigir">
    </form>

 
    <script>
// Começamos com uma 'Self-Executing Anonymous Functions', esse parttern nos ajuda a não poluir o global namespace;
    ;(function(){
 
// doc é um 'cache' para o objeto global documento, assim nao precisamos subir toda hora para acessar esse objeto, ja que agora temos ele local;
    var doc = document,
 
// Um array que contem todos os inputs com a class .resposta. (.querySelectorAll nao está disponivel em todos os navegadores, entao caso você precise você pode usar outra maneira para conseguir os inputs, ex.: .getElementsByClassName())
    respostaUsuario = doc.querySelectorAll('input.resposta'),
 
// A lista de respostas corretas;
    respostaCorreta = ['a', 'b', 'c'],
 
// Um pequeno dicionário para feedback;
    resposta = {
    'certa': 'Sua resposta esta certa',
    'errada': 'Resposta correta: '
    },
 
// O botao que será clicado para verificar suas respostas;
    btn = doc.getElementById('button');
 
// Funcao chamada para verificar as resposas;
    function Corrigir() {
 
// Variaveis locais, incluindo um caching para a quantidade de inputs na pagina
    var i,
    len = respostaUsuario.length;
 
    for( i = 0; i < len; i++ ) {
 
// Ao inves de usar document.write segue uma maneira melhor de mostrar seus resultados;
    var d = doc.createElement('div'),
    text;
 
// Se a resposta do usuário estiver correta;
   if (respostaUsuario[i].value == respostaCorreta[i]) {
 
// Criamos um texto para mostrar para ele;
    text = doc.createTextNode(resposta.certa);
    d.appendChild(text);
 
// Colocamos esse texto logo apos o input;
    respostaUsuario[i].parentNode.insertBefore(d, respostaUsuario[i].nextSibling);
 
    } else {
 
// Caso ele erre, criamos um texto de erro e adicionando a mensagem abaixo do input;
    text = doc.createTextNode(resposta.errada + respostaCorreta[i]);
    d.appendChild(text);
    respostaUsuario[i].parentNode.insertBefore(d, respostaUsuario[i].nextSibling);
    }
    }
    }
 
// Aqui vamos ouvir o evento de click no botao; Quando ele for clicado vamos executar a funcao Corrigir;
    button.addEventListener("click", Corrigir, false);
    })();

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por juliosonic
      Boa noite..
      Estou desenvolvendo um site de https://www.maithunatantra.com.br/ e estou com um duvida sobre o menu de navegação da versão mobile.
      O menu que tem o dropdown "Terapeutas" e "Terapias" quando clico em cima ele expande como deve ser, mas quando clico denovo para recolher os submenus
      nao acontece nada.. segue o trecho do codigo do menu..
      <div class="collapse navbar-collapse" id="navbarsExample09">             <ul class="navbar-nav ml-auto">               <li class="nav-item  active"><a class="nav-link" href="index.html">Home</a></li>               <li class="nav-item  active"><a class="nav-link" href="about-us.html">Quem Somos</a></li>               <li class="nav-item dropdown1">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapeutas</a>                     <ul class="dropdown-menu">                         <li><a class="dropdown-item" href="terapeuta-julio-cezar.html">Julio Cezar</a></li>                         <li><a class="dropdown-item" href="terapeuta-pamela-priscila.html">Pamela Priscila</a></li>                     </ul>                                    </li>               <li class="nav-item dropdown">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapias</a>                     <ul class="dropdown-menu" aria-labelledby="dropdown01">                         <li><a class="dropdown-item" href="o-que-e-reiki.html">O que é Reiki</a></li>                         <li><a class="dropdown-item" href="beneficios-reiki.html">Benefícios do Reiki</a></li>                         <li><a class="dropdown-item" href="principios-reiki.html">Princípios do Reiki</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Reiki em Animais</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Estudos Sobre Reiki</a></li>                         <li><a class="dropdown-item" href="terapia-massagem-tantrica.html">Terapia Tântrica</a></li>                     </ul>               </li>               <li class="nav-item  active"><a class="nav-link" href="blog.html">Blog</a></li>                <li class="nav-item"><a class="nav-link" href="contato.html">Contato</a></li>             </ul>         </div>  
      Massagem Tantrica em Curitiba
      Tantra Curitiba
      Massagem Tântrica
      Tantra
      Julio Darshan

      Obrigado
      Att
      Julio Cezar
       
       
       
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.