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>