Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75

    Quiz O Questionario Con Prompt

    Ciao,

    ho realizzato questo quiz o questionario (per i ragazzi a scuola) in javascript con l'uso del prompt. Come potete vedere nella parte nascosta del codice della funzione 008 si può dare una risposta verde se corretta o rossa se errata. Con l'inclusione delle ancore posso far scorrere la pagina sul video. Vorrei implementare degli alert che impediscano di procedere se non inseriscono ad esempio il nome, ma non riesco. Inoltre è possibile ridurre il codice eliminando le parti ridondanti?

    p.s. le domande e le risposte sono improvvisate.

    Grazie.

    codice:
    <html>
    <head>
    <script type="text/javascript">
    
    var no_r= "Non hai risposto alla domanda.";
    var bo_r= "Non sei stato in grado di rispondere a questa domanda.";
    var r_no= "Risposta corretta: non disponibile.";
    var r_si= "Risposta corretta: ";
    
    var d_01= "Quali sono i vari gradi della sezione aurea?";
    var r_01= "20 sul lato gradiente ma infiniti sul lato pari.";
    
    var d_02= "Per quale motivo ritieni che l'arte sia importante?";
    var r_02= "Perch&egrave; l'arte sviluppa il senso estetico della vita.";
    
    var d_03= "Quanti sono i colori primari?";
    var r_03= "3";
    
    var d_04= "In che anno viene dipinta l'ultima cena?";
    var r_04= "1454";
    
    var d_05= "In quale anno (d.C. dopo Cristo) cade l'Impero Romano d'Occidente? 456, 367, 476, 567";
    var r_05= "476";
    
    var d_06= "Come si chiamava Van Gog?";
    var r_06= "Vincent";
    
    var d_07= "Chi ha disegnato il ritratto chiamato Monna Lisa?";
    var r_07= "Leonardo da Vinci";
    
    var d_08= "In quale museo è conservato il quadro chiamato Monna Lisa?";
    var r_08= "Louvre";
    
    function inizio() {
    document.write ("<body style=\"padding: 10px;\">");
    document.write ("<font style=\"font: normal 14px verdana; color: RGB(100,100,100);\">");
    document.write ("<H2>ArtE di marthasand</H2>");
    document.write (dateFormat(Date(), 'dd mmmm yyyy '));
    document.write ("
    
    VERIFICA ON LINE DI ARTE");
    document.write ("
    
    TEMA: Il gesto e il segno.
    
    <HR>
    
    ");
    }
    
    function dati() {
    var nome=prompt("Per favore inserisci il tuo nome","")
    document.write ("NOME: " + nome + " | ");
    var scuola=prompt("Per favore inserisci la tua scuola","")
    document.write ("SCUOLA: " + scuola + " | ");
    var classe=prompt("Per favore inserisci la tua classe","")
    document.write ("CLASSE: " + classe + "
    
    <HR>");
    alert ("Adesso inizia la sequenza di domande.");
    }
    
    function a001() {
    var a001 = window.prompt(d_01);
    if (a001=="") {
    document.write ("
    
    " + d_01 + "
    
    " + no_r + "
    
    " + r_no + "<HR>");
    }
    else if (a001==null) {
    document.write ("
    
    " + d_01 + "
    
    " + bo_r + "
    
    " + r_no + "<HR>");
    }
    else {
    document.write ("
    
    " + d_01 + "
    
    " + a001 + "
    
    " + r_si + "" + r_01 + "<HR>");
    }
    }
    
    function a002() {
    var a002 = window.prompt(d_02);
    if (a002=="") {
    document.write ("
    
    " + d_02 + "
    
    " + no_r + "
    
    " + r_no + "<HR>");
    }
    else if (a002==null) {
    document.write ("
    
    " + d_02 + "
    
    " + bo_r + "
    
    " + r_no + "<HR>");
    }
    else {
    document.write ("
    
    " + d_02 + "
    
    " + a002 + "
    
    " + r_si + "" + r_02 + "<HR>");
    }
    }
    
    function alert001() {
    alert ("Le prossime domande necessitano di una risposta precisa.");
    }
    
    function a003() {
    var a003 = window.prompt(d_03);
    if (a003=="") {
    document.write ("
    
    " + d_03 + "
    
    " + no_r + "
    
    " + r_no + "<HR>");
    }
    else if (a003==null) {
    }
    else {
    document.write ("
    
    " + d_03 + "
    
    " + a003 + "
    
    " + r_si + "" + r_03 + "<HR>");
    }
    }
    
    function a004() {
    var a004 = window.prompt(d_04);
    if (a004=="") {
    document.write ("
    
    " + d_04 + "
    
    " + no_r + "
    
    " + r_no + "<HR>");
    }
    else if (a004==null) {
    document.write ("
    
    " + d_04 + "
    
    " + bo_r + "
    
    " + r_no + "<HR>");
    }
    else {
    document.write ("
    
    " + d_04 + "
    
    " + a004 + "
    
    " + r_si + "" + r_04 + "<HR>");
    document.write ("<a name=\"004\">");
    window.location.href="#004";
    }
    }
    
    function a005() {
    var a005 = window.prompt(d_05);
    if (a005=="") {
    document.write ("
    
    " + d_05 + "
    
    " + no_r + "
    
    " + r_no + "<HR>");
    }
    else if (a005==null) {
    document.write ("
    
    " + d_05 + "
    
    " + bo_r + "
    
    " + r_no + "<HR>");
    }
    else {
    document.write ("
    
    " + d_05 + "
    
    " + a005 + "
    
    " + r_si + "" + r_05 + "<HR>");
    document.write ("<a name=\"005\">");
    window.location.href="#005";
    }
    }
    
    function a006() {
    var a006 = window.prompt(d_06);
    if (a006=="") {
    document.write ("
    
    " + d_06 + "
    
    " + no_r + "
    
    " + r_no + "<HR>");
    }
    else if (a006==null) {
    document.write ("
    
    " + d_06 + "
    
    " + bo_r + "
    
    " + r_no + "<HR>");
    }
    else {
    document.write ("
    
    " + d_06 + "
    
    " + a006 + "
    
    " + r_si + "" + r_06 + "<HR>");
    document.write ("<a name=\"006\">");
    window.location.href="#006";
    }
    }
    
    function a007() {
    var a007 = window.prompt(d_07);
    if (a007=="") {
    document.write ("
    
    " + d_07 + "
    
    " + no_r + "
    
    " + r_no + "<HR>");
    }
    else if (a007==null) {
    document.write ("
    
    " + d_07 + "
    
    " + bo_r + "
    
    " + r_no + "<HR>");
    }
    else {
    document.write ("
    
    " + d_07 + "
    
    " + a007 + "
    
    " + r_si + "" + r_07 + "<HR>");
    document.write ("<a name=\"007\">");
    window.location.href="#007";
    }
    }
    
    function a008() {
    var a008 = window.prompt(d_08);
    if (a008=="") {
    document.write ("
    
    " + d_08 + "
    
    " + no_r + "
    
    " + r_no + "<HR>");
    }
    else if (a008==null) {
    document.write ("
    
    " + d_08 + "
    
    " + bo_r + "
    
    " + r_no + "<HR>");
    }
    /*else if (a008=="Louvre") {
    document.write ("
    
    " + d_08 + "<P style=\"color: green\">" + a008 + "
    
    " + r_si + "" + r_08 + "<HR>");
    }
    else {
    document.write ("
    
    " + d_08 + "<P style=\"color: red\">" + a008 + "
    
    " + r_si + "" + r_08 + "<HR>");
    document.write ("<a name=\"008\">");
    window.location.href="#008";
    }*/
    else {
    document.write ("
    
    " + d_08 + "
    
    " + a008 + "
    
    " + r_si + "" + r_08 + "<HR>");
    document.write ("<a name=\"008\">");
    window.location.href="#008";
    }
    }
    
    function chiudi() {
    document.write ("
    
    La verifica è terminata stampala e portala a scuola.
    
    ");
    document.write ("<A HREF=\"#\">torna su</A> | ");
    document.write ("<A HREF=\"javascript:print();\">stampa</A> | ");
    document.write ("<A HREF=\"javascript:window.location.reload(true);\">cancella</A>");
    document.write ("</font>");
    }
    </script>
    
    </head>
    
    <body STYLE="margin: 10px; font: normal 14px verdana; color: RGB(100,100,100);">
    <H2>VERIFICA DI ARTE ON LINE</H2>
    <H3>Istruzioni per un corretto svolgimento della verifica</H3>
    <H4>Segui le indicazioni della finestra di dialogo, leggendo attentamente le domande: alcune risposte prevedono una risposta libera espressa con le tue parole, in seguito ti 
    viene indicata la risposta corretta, in altri casi si prevede una risposta precisa come ad esempio date e nomi.
    
     Anche se ritieni di non essere sicuro, rispondi comunque, se 
    proprio non sai la risposta, clicca sul pulsante Annulla e procedi con il questionario.</H4>
    <H4>La verifica è assolutamente anonima e non viene registrata, anche se puoi stampare il risultato per tuo piacere personale, inoltre non ha valore nel giudizio scolastico.</H4>
    <H4>Clicca sul pulsante qui sotto per iniziare.</H4>
    
    <input type="button" onclick=" inizio(); dati(); a001(); a002(); alert001(); a003(); a004(); a005(); a006(); a007(); a008(); chiudi();" value="Inizia la verifica">
    
    <script>
    function lz(numero, cifre) {
    	n = String(numero);
    	while (n.length<cifre) { 
    		n="0"+n 
    	}
    	return n;
    }
    function dateFormat(data, formato) { 
    // (c) br1 - 2002 
    
    	var giorni = new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato");
    	var mesi = new Array("Gennaio","Febbraio","marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
    
    // preparo la data...  verificare di passarla corretta!
    	var adesso = new Date(data); 
    	var anno = adesso.getFullYear();
    	var mese = adesso.getMonth()+1;
    	var giorno = adesso.getDate();
    	var settim = adesso.getDay()
    	var ore = adesso.getHours()
    	var minuti = adesso.getMinutes()
    	var secondi = adesso.getSeconds()
    
    // preparo la stringa di risposta
    	var rVal = '';
    
    	if (formato.length==0) { 
    // assenza del secondo parametro
    		return String(adesso); 
    	} else {
    
    	// inizio loop
    		while (formato.length>0) {
    
    	// verifico se c'e' qualche separatore e lo aggiungo
    			while (formato.length>0 && String("ymdphnst").indexOf(formato.charAt(0).toLowerCase())<0) {
    				rVal += formato.charAt(0);
    				formato = formato.substr(1);
    			}
    
    
    	// Separo il gruppo
    			if (formato.length>0) {
    				ff = formato.charAt(0);
    				formato = formato.substr(1);
    				while (formato.length>0 && formato.charAt(0).toLowerCase()==ff.charAt(0).toLowerCase()) {
    					ff += formato.charAt(0);
    					formato = formato.substr(1);
    				}
    
    	// espando il formato nella stringa corrispondente
    				ff = ff.toLowerCase();	 // operazione preliminare... tutto in minuscolo
    				switch (ff) 	{ 
    					case "yy" : 
    						rVal += String(anno).substr(2); 
    						break; 
    					case "yyyy" : 
    						rVal += String(anno); 
    						break; 
    					case "m" : 
    						rVal += String(mese); 
    						break; 
    					case "mm" : 
    						rVal += lz(mese,2);
    						break; 
    					case "mmm" : 
    						rVal += mesi[mese-1].substr(0,3);
    						break; 
    					case "mmmm" : 
    						rVal += mesi[mese-1];
    						break; 
    					case "d" : 
    						rVal += String(giorno); 
    						break; 
    					case "dd" : 
    						rVal += lz(giorno,2); 
    						break; 
    					case "ddd" : 
    						rVal += giorni[settim].substr(0,3);
    						break; 
    					case "dddd" : 
    						rVal += giorni[settim];
    						break; 
    					case "p" : 
    						var inizio = new Date(anno, 0, 0); 
    						rVal += Math.floor((adesso - inizio) / 86400000);
    						break; 
    					case "ppp" : 
    						var inizio = new Date(anno, 0, 0); 
    						rVal += lz(Math.floor((adesso - inizio) / 86400000),3);
    						break; 
    					case "h" : 
    						rVal += String(ore); 
    						break; 
    					case "hh" : 
    						rVal += lz(ore,2); 
    						break; 
    					case "n" : 
    						rVal += String(minuti); 
    						break; 
    					case "nn" : 
    						rVal += lz(minuti,2); 
    						break; 
    					case "s" : 
    						rVal += String(secondi); 
    						break; 
    					case "ss" : 
    						rVal += lz(secondi,2); 
    						break; 
    					case "t" : 
    						rVal += lz(ore,2)+":"+lz(minuti,2)+":"+lz(secondi,2); 
    						break; 
    					default :  // il numero dei caratteri del formato non e' permesso
    						rVal += ff.replace(/./gi,"?");
    				} 
    
    			}
    
    		} // fine loop principale
    
    		return rVal;
    	}
    } 
    </script>
    </body>
    
    </html>
    CIVIS ROMANVS SVM

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non capisco come possa funzionare anche solo qualcosa... non si puo' usare document.write() all'interno di una funzione perche' sovrascrive l'intera pagina... script compresi.

    Inoltre usi lo stesso nome per le funzioni e le variabili: come pretendi che l'interprete possa capire a quale delle due ti riferisci quando le usi?

    [ot]: a rivedere gli ultimi script mi sono ricordato di quando ero giovane...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.