Tady to máte správně:
Kód:
<form action="" name="t1" >
<input type="text" name="test" value="">
<input type="button" value="Výsledek" onClick="return checkValue();" >
</form>
<script>
var allowedValues = ["jedna", "dve", "tri"];
function checkValue() {
var inputValue = document.t1.test.value;
for(var key in allowedValues) {
if( inputValue == allowedValues[key] ) {
console.log(inputValue + ' = ' + allowedValues[key]);
} else {
console.log(inputValue + ' != ' + allowedValues[key]);
}
}
}
</script>
1. Proměnnou zadano jste deklaroval hned při načtení stránky, kdy je pole prázdné. Proto byla prázdná.
2. document.write() je zlá funkce, nahradil jsem jí console.log(), která vytiskne argument ve vývojářské konzoli.
Používejte pro vývoj Chrome nebo Firefox s nainstalovaným rozšířením Firebug, tam je konzole hned po ruce.
3. Pole neprocházejte pomocí
ale pomocí
Kód:
for(var key in array) { }
1 + 3 = 4: Proměnnou x jste deklaroval mimo funkci, takže smyčka do {} while() proběhla správně jen jednou.
5. Nepoužívejte onclick="", ale addEventListener/attachEvent, eventuálně framework jako jQuery.
6: Používejte správné odsazování kódu a složené závorky. Jinak se v tom nikdo nevyzná.
6,5: Nevím, z čeho se učíte, ale ty HTML komentáře okolo JS kódu už dávno psát nemusíte. Dnes už neexistují prohlížeče, které nerozumí prvku <script>.
Poslední takový prohlížeč byl Internet Explorer 2. Viděl jste ho v poslední době někde?