[Javascript] Script che controlla quello che hai scritto nell'input

Dani.exe

Nuovo Utente
1 Ott 2017
8
0
1
31
Vi metto la pagina così capite meglio
<html>
<head>
<meta charset="UTF-8" />
<script>
var boh = prompt("Come ti chiami?");
document.write("<font size='18' style='position: absolute; left: 350px'>Benvenuto "+boh+"</font>");
// Prova
function frasiRandom(){
var frasi = new Array();
frasi [0] = 'A';
frasi [1] = 'B';
frasi [2] = 'C';
frasi [3] = 'D';
var random = Math.floor(Math.random()*frasi.length);
document.Form.Input.value = frasi[random];
}
var lettera = new Array();
lettera [0] = "A";
lettera [1] = "a";


function scrive(){

if(document.Sbagliato.InputOne.value == lettera){
document.Sbagliato.inputtwo.value = "OK";
// document.write("OK");

} else{
document.Sbagliato.inputtwo.value = "Sbagliato";
}
}

</script>
<style>
.InPut {
width: 200px;
height: 60px
}
</style>
</head>
<body OnLoad="frasiRandom()">

<form name="Form">
<input type='button' value="Next" OnClick="frasiRandom()">
<input name="Input" class="InPut" readonly>
</form>
<form name="Sbagliato">
<input type="text" name="InputOne" value="" autocomplete="off">
<input type="button" OnClick="scrive()" name="SbagliatoOne" value="Valuta">
<input type="text" readonly name="inputtwo" value="">
</form>
</body>
</html>
 

Dani.exe

Nuovo Utente
1 Ott 2017
8
0
1
31
In pratica nell'input "InputOne" ci scrivo una lettera contenuta nella variabile lettera e quando clicco sul bottone valuta nell'input "inputtwo" se ho scritto bene mi da come risultato "OK" ma se ho scritto male mi da "Sbagliato" ma questo non succede e non riesco a trovare l'errore
 

Dani.exe

Nuovo Utente
1 Ott 2017
8
0
1
31
Ho provato a mettere :
document.Sbagliato.InputOne.value == lettera[0] || document.Sbagliato.InputOne.value == lettera[1]
Ma non è un po' troppo lungo
 

WmbertSea

Utente Attivo
28 Nov 2014
178
27
28
Ciao, non so se nel frattempo hai avuto modo di risolvere ma rispondo ugualmente per eventuali posteri.
Quello che stai cercando di fare è una comparazione tra un valore semplice (come una stringa di testo) e un array.
Chiaramente non puoi confrontare direttamente le due variabili ma dovrai utilizzare qualche metodo per verificare che la tua variabile testuale sia contenuta dentro un qualche elemento dell'array.

Sull'ultimo tuo post ti sei avvicinato ad una soluzione, confrontando la tua variabile con i singoli elementi dell'array, ma come tu stesso hai notato, è una soluzione dispendiosa e mal gestibile. In questo caso può essere utile il metodo indexOf() dell'oggetto Array. Questo restituirà l'indice (in base 0) dell'elemento di confronto, oppure il valore -1 se non è trovato alcun elemento uguale a quello di confronto.

Nel tuo caso avrai quindi una condizione di questo tipo:
Codice:
if (lettera.indexOf(document.Sbagliato.InputOne.value) != -1) {
   // il valore esiste nell'array
} else {
   // nessun elemento trovato con questo valore
}