27.12.2014, 23:41
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Не работает onkeypress.
Здравствуйте.
Алгоритм работы кода.
1. Генерируется случайная буква и отображается на экране.
2. При вводе в поле <input> любого символа, программа сравнивает его с только что сгенерированным.
3. Если значения равны - пользователь оповещается alert`ом.
https://github.com/VaAlina/type_faster
window.onload = function () {
var array = ["a", "b", "c", "d", "e", "f", "g", "h", "i","j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
var getRandomLetter = function () {
return array[Math.floor(Math.random() * array.length)];//Генерирую случайную букву.
};
letter = getRandomLetter();//Присваиваю переменной функцию.
document.getElementById("word").textContent = letter;//Записываю в пустой div случайную переменную letter.
userInput = document.getElementById("inputValue");//Получить ввод пользователя.
function compareValues(){
if(letter == userInput){alert("You win!")};//Cравнить ввод пользователя с текущим случайным символом.
}
};
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css"/>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<input id="inputValue" onkeypress="compareValues()" maxlength="1" autocomplete="off" autofocus />
<div id="word"></div>
</body>
</html>
Первый пункт точно работает, а вот по поводу остальных я сильно сомневаюсь.
Пожалуйста, помогите найти ошибку.
Последний раз редактировалось Blondinka, 28.12.2014 в 14:02.
Причина: Добавила код
|
|
28.12.2014, 13:04
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 458
|
|
Blondinka,
userInput = document.getElementById("inputValue").value;
|
|
28.12.2014, 14:54
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Вот тут всё работает.
<!DOCTYPE html>
<html>
<body>
Name: <input type="text" id="myText" onkeyup="myFunction()" autofocus />
<script>
function myFunction() {
var first = document.getElementById("myText").value;
if(first=='a'){
alert('you win!');
}else{
alert(first);
};
}
</script>
</body>
</html>
А мой код, вообще ни как не реагирует на ввод. Скорее всего, ошибка в последней функции.
window.onload = function () {
var array = ["a", "b", "c", "d", "e", "f", "g", "h", "i","j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];//Работает.
var getRandomLetter = function () {
return array[Math.floor(Math.random() * array.length)];//Генерирую случайную букву. Работает.
};
letter = getRandomLetter();//Присваиваю переменной функцию. Работает.
document.getElementById("word").textContent = letter;//Записываю в пустой div случайную переменную letter. Работает.
function myFunction() {//Вне зависимости от наличия аргумента, не работает.
var first = document.getElementById("inputValue").value;
if(first == letter){
alert('you win!')}else{
alert(first);
};
}
};
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css"/>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<input id="inputValue" onkeyup="myFunction()" maxlength="1" autocomplete="off" autofocus />
<div id="word"></div>
</body>
</html>
|
|
28.12.2014, 18:26
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Решила!!!
Я создала 2 функции, generateSign() привязала к body onload, compare() - к событию onkeyup().
var generateSign = function(){
var array = ["a", "b", "c", "d", "e", "f", "g", "h", "i","j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];//Работает.
var getRandomLetter = function () {
return array[Math.floor(Math.random() * array.length)];//Генерирую случайную букву. Работает.
};
letter = getRandomLetter();//Присваиваю переменной функцию. Работает.
document.getElementById("word").textContent = letter;//Записываю в пустой div случайную переменную letter. Работает.
}
var compare = function(){
var first = document.getElementById("inputValue").value;
if(first == letter){
alert('you win!')}else{
alert(first);
};
}
|
|
|
|