Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.12.2014, 23:41
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 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. Причина: Добавила код
Ответить с цитированием
  #2 (permalink)  
Старый 28.12.2014, 13:04
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

Blondinka,
userInput = document.getElementById("inputValue").value;
Ответить с цитированием
  #3 (permalink)  
Старый 28.12.2014, 14:54
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 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>
Ответить с цитированием
  #4 (permalink)  
Старый 28.12.2014, 18:26
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 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);
   };
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11