arteqrt
@arteqrt
Почти не начинающий програмист

Почему код не работает?

Код должен генерировать случайное число и пользователь должен его угадать, если введено число больше, должно выводить, что число больше чем нужно и т д.
Почему то выводит одно и тоже, при этом код останавливается после первой попытки угадать число.
var input = document.getElementById('input').value;
input = parseInt(input);
var number;

var res = document.getElementById('result');

f1();

function f1() {
	number = Math.ceil( Math.random() * 100);
	console.log(number);
};

document.getElementById('button').onclick = function() {
	if (input == number) {
		res.innerHTML = 'Вы угадали!';
	}
	else if (input > number) {
		res.innerHTML = 'Вы не угадали! Число меньше';
	}
	else {
		res.innerHTML = 'Вы не угадали! Число больше';
	}
}

<body>
	<p>Угадай число <input type="text" id="input"> <button id="button">Угадать!</button></p>
	<p id="result"></p>
</body>
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
wapster92
@wapster92 Куратор тега JavaScript
Он работает постоянно при клике тут все верно, но
var input = document.getElementById('input').value;
input = parseInt(input);

вызывается один раз при загрузке, соответсвенно, что бы кто не ввел input всегда будет NaN в твоем случае. Тебе данный код нужно внутрь события сунуть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Lynatik001
ну потому что как минимум, ты только 1 раз за всю жизнь скрипта вызиваешь f1();
- помести его в onclick что у тебя реализован
Да и желательно, что то возращать из єтой функции... - где return. а соре не заметил что у тебя обявление переменной непонятно где обявленно))

вот рабочее. вы значение поля брали когда оно пустым было
var number;

var res = document.getElementById('result');

f1();

function f1() {
  number = Math.ceil( Math.random() * 100);
  console.log(number);
  
};

document.getElementById('button').onclick = function() {
  var input = document.getElementById('input').value;
input = parseInt(input);
  console.log(input);
  console.log('asd')
  if (input == number) {
    res.innerHTML = 'Вы угадали!';
  }
  else if (input > number) {
    res.innerHTML = 'Вы не угадали! Число меньше';
  }
  else {
    res.innerHTML = 'Вы не угадали! Число больше';
  }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы