Не работает 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,
userInput = document.getElementById("inputValue").value; |
Вот тут всё работает.
<!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> |
Решила!!!
Я создала 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); }; } |
Часовой пояс GMT +3, время: 07:12. |