Ciao
Lo script (VBScript) di una pagina web non funziona come dovrebbe e non capisco perchè. La Sub "Valutazione" legge il "Value" di 10 Input tipo text e li mette in un array, subito dopo confronta questo array con delle parole esistenti, ma ne salta una.
Questo succede quando negli Input si scrivono solo una o due parole. Il programma ti dice che sono poche e ti invita a continuare. Ne scrivo delle altre, ma nel controllo ne salta una.
Perchè?. La sub è sempre quella!
Volete aiutarmi?
La spiegazione è un po' incasinata, quindi è meglio provare.
La pagina è quì sotto (solo il necessario)
Scrivi una parolina contenuta nella parolona in alto e premi "Enter"
Si passa all'Input seguente
Premi la barra per il controllo
Grazie
rudyF
codice:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <style type="text/css"> <!-- body {background-color:#AACCFF; overflow-x:hidden; overflow-y:hidden;} .tst {color:#000000; text-align:center; font-style:normal; font-size:30pt; font-weight:bold; font-family:Times New Roman, Arial, Verdana; border:2px solid; border-color:#000000;} .prl {color:#000000; text-align:center; font-style:normal; font-size:20pt; font-weight:normal; font-family:Times New Roman, Arial, Verdana; width:300px; height:40px; position:absolute; left:0px; background:#FFCCFF; border-color:#000000;} .msgg {color:#000000; text-align:center; font-style:normal; font-size:28pt; font-weight:normal; font-family:Times new Roman, Arial, Verdana;} --> </style> </head> <body onKeyDown="javascript:Tastiera(event.keyCode);" onload="self.focus();"> <p id="Testo" class="tst" style="width:490px; height:45px; position:absolute; left:155px; top:40px; z-index:1; background-color:#FF00FF;"></p> <div style="width:300px; height:360px; position:absolute; left:65px; top:125px; z-index:1;"> <input id="Inserto1" type="text" class="prl" style="top:0px; z-index:1;" OnMouseUp="Cliccato(1);"> <input id="Inserto3" type="text" class="prl" style="top:45px; z-index:1;" OnMouseUp="Cliccato(3);"> <input id="Inserto5" type="text" class="prl" style="top:90px; z-index:1;" OnMouseUp="Cliccato(5);"> <input id="Inserto7" type="text" class="prl" style="top:135px; z-index:1;" OnMouseUp="Cliccato(7);"> <input id="Inserto9" type="text" class="prl" style="top:180px; z-index:1;" OnMouseUp="Cliccato(9);"> </div> <div style="width:300px; height:360px; position:absolute; left:425px; top:125px; z-index:1;"> <input id="Inserto2" type="text" class="prl" style="top:0px; z-index:1;" OnMouseUp="Cliccato(2);"> <input id="Inserto4" type="text" class="prl" style="top:45px; z-index:1;" OnMouseUp="Cliccato(4);"> <input id="Inserto6" type="text" class="prl" style="top:90px; z-index:1;" OnMouseUp="Cliccato(6);"> <input id="Inserto8" type="text" class="prl" style="top:135px; z-index:1;" OnMouseUp="Cliccato(8);"> <input id="Inserto10" type="text" class="prl" style="top:180px; z-index:1;" OnMouseUp="Cliccato(10);"> </div> <p id="Messaggio" class="msgg" style="width:810px; height:45px; position:absolute; left:-5px; top:390px; z-index:1; background-color:#FF0000;" OnMouseUp = "Proseguimento()"></p> <script language="VBScript"> <!-- Dim scelta, posizione, contagiuste, vai, q q = False Sub window_onLoad() Randomize Call Preparazione End sub Sub Preparazione() posizione = 1 contagiuste = 0 vai = False Inserto1.Focus Call Azzera End Sub Sub Azzera() For h = 1 To 10 Set InsertoX = Eval("Inserto" & h) InsertoX.Value = "" InsertoX.style.background = "#FFCCFF" parola(h) = "" Next Call SceglieParola End Sub Sub SceglieParola() vocabolo(12) = "contachilometri" scelta = 12 Testo.InnerText = UCase(vocabolo(12)) vai = True End Sub '******************************************************************************' Sub Tastiera(x) If vai = False Then Exit Sub If x = 13 Then Call Avanzamento Exit Sub End If If x = 32 Then Call Avanzamento Call Valutazione End If End Sub Sub Avanzamento() vai = False posizione = posizione + 1 If posizione > 10 Then posizione = 1 Set InsertoX = Eval("Inserto" & posizione) InsertoX.Focus window.setTimeout "Ritardo", 500, "VBScript" End Sub Sub Ritardo() vai = True End Sub Sub Cliccato(x) posizione = x End Sub Sub Valutazione() For h = 1 To 10 ' legge i 10 Value e li mette nell'array parola(x) Set InsertoX = Eval("Inserto" & h) ' qui li legge tutti parola(h) = InsertoX.Value Next contagiuste = 0 For k = 1 To 10 For h = 1 To numerovoci(scelta) ' numerovoci(12) = 11 If parola(k) = voce(scelta, h) Then ' qui NON le riconosce tutte Set InsertoX = Eval("Inserto" & k) InsertoX.style.background = "#009900" contagiuste = contagiuste + 1 if q = True Then msgbox parola(k) ' riga aggiunta per debugging' End If Next Next Call Conteggio End Sub Sub Conteggio() Select case contagiuste case 0 Messaggio.InnerText = "non hai trovato neppure una parolina?" window.setTimeout "Riprova", 3000, "VBScript" case 1 Messaggio.InnerText = "una parola è veramente troppo poco" window.setTimeout "Riprova", 3000, "VBScript" case 2 Messaggio.InnerText = "dovresti impegnarti un po' di più" window.setTimeout "Riprova", 3000, "VBScript" case 3 Messaggio.InnerText = "mmm, benino" window.setTimeout "Ricomincia", 5000, "VBScript" case 4 Messaggio.InnerText = "va bene" window.setTimeout "Ricomincia", 5000, "VBScript" End Select End Sub Sub Riprova() q = True vai = True Messaggio.InnerText = "guarda bene" For h = 1 To 10 Set InsertoX = Eval("Inserto" & h) InsertoX.style.background = "#FFCCFF" Next End Sub '*******************************************************************************' Dim voce(20,12), parola(20), numerovoci(20), vocabolo(20) voce(12,1) = "conta" voce(12,2) = "chilo" voce(12,3) = "metri" voce(12,4) = "con" voce(12,5) = "onta" voce(12,6) = "chi" voce(12,7) = "lo" voce(12,8) = "me" voce(12,9) = "chilometri" voce(12,10) = "metrico" voce(12,11) = "il" numerovoci(12) = 11 --> </script> </body> </html>

Rispondi quotando