Не работает 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, время: 04:38. |