Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Immagino che nel caso reale la risposta da controllare non sia uguale per tutte e 5 le domande (come nell'esempio che hai fatto tu)

    Potresti fare un object lookup, es:

    codice HTML:
    <body>        
       <input id="domandatestoa1">        
       <input id="domandatestoa2">        
       <input id="domandatestoa3">        
       <input id="domandatestoa4">        
       <input id="domandatestoa5">        
       <input type="button" value="Verifica" onclick="contarisposte()">  </body>

    L'object contiene come chiavi gli ID dei campi e come valori la risposte corrette corrispondenti

    codice:
    var rightAnswers = {
      domandatestoa1: "risposta1",
      domandatestoa2: "risposta2",
      domandatestoa3: "risposta3",
      domandatestoa4: "risposta4",
      domandatestoa5: "risposta5"
    };

    poi cerchi tutti i campi i cui ID iniziano con


    codice:
    domandatestoa


    e per ciascuno dei campi controlli se il suo value corrisponde al valore della chiave nell'oggetto


    codice:
    function contaRisposte() {
        var questions = document.querySelectorAll('[id^="domandatestoa"]');
        var totalRightAnswers = 0;
    
        [].forEach.call(questions, function(question) {
             if (question.value === rightAnswers[question.id]) {
                 totalRightAnswers++;
             }
        });
    
        console.info("hai risposto correttamente a %d risposte", totalRightAnswers);
    }
    in questo caso le risposte sono codificate in un object, ma potresti anche inserirle in un attributo del campo di input, es.

    codice HTML:
    <input id="domandatestoa1" data-answer="risposta1" />
    e a quel punto la condizione da controllare diventerebbe

    codice:
    if (question.value === question.getAttribute('data-answer')) {
          totalRightAnswers++;
    }

    si lascia all'utente la normalizzazione delle risposte dell'utente (rimozione di spazi, conversione in lowercase)
    Ultima modifica di fcaldera; 04-08-2016 a 12:47
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.