Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Когда должно 100% работать а не работает. (https://javascript.ru/forum/dom-window/79810-kogda-dolzhno-100%25-rabotat-ne-rabotaet.html)

Сергей Ракипов 28.03.2020 10:56

Почему у меня не остановился счетчик

let btn = document.querySelector(".btn");
let out = document.querySelector("#out");
let randomNum = Math.round(Math.random()*10);
let remained = document.querySelector("#remained")
remained.innerHTML = "Количество попыток 3";
let count = 3;


console.log(randomNum);


btn.onclick = guess;


function guess(){
let inputNum = document.querySelector("input").value;
inputNum = parseInt(inputNum);
	if (!isNaN(inputNum) && inputNum>=0 && inputNum <=10){
		if(inputNum < randomNum || count>=0){
			out.innerHTML = "Больше";
			count--;
			remained.innerHTML = "Осталось поптыток: " + count;
		}
		else if(inputNum > randomNum || count>=0){
			out.innerHTML = "Меньше";
			count--;
			remained.innerHTML = "Осталось поптыток: " + count;
		}
		else if (inputNum == randomNum){
			out.innerHTML = "Вы угадали";
			setTimeout(function(){
				location.reload();
			}, 2000)
		}
		else if (count<=0){
			remained.innerHTML = "Вы проиграли";
			setTimeout(function(){
				location.reload();
			}, 2000)
		}
	}
}

рони 28.03.2020 13:37

Сергей Ракипов,
условие в строках 19 и 24 не или || , а и &&.

Сергей Ракипов 29.03.2020 06:18

Цитата:

Сообщение от рони (Сообщение 521873)
Сергей Ракипов,
условие в строках 19 и 24 не или || , а и &&.

Спасибо, еще пока правила и главное синтаксис не могу запомнить.

Сергей Ракипов 30.03.2020 10:40

let radioCheck = document.querySelectorAll(".radio");
let outConsol = document.querySelector(".out_console");

function consl(){
	for(let i=0; i<radioCheck.length; i++){
		if(radioCheck[i].checked){
			outConsol.innerHTML = "Ваша консоль- " + radioCheck[i].value;
		}
	}
}

consl();


Все вроде правильно, но не работает.

рони 30.03.2020 11:15

Сергей Ракипов,
делайте полноценный пример.
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>
<body>
<input type="radio" value="1" class="radio" name="test">
<input type="radio" value="2" class="radio" name="test" checked="checked">
<input type="radio" value="3" class="radio" name="test">
<input type="radio" value="4" class="radio" name="test">
<input type="radio" value="5" class="radio" name="test">
<div class="out_console"></div>
<script>
let radioCheck = document.querySelectorAll(".radio");
let outConsol = document.querySelector(".out_console");

function consl(){
    for(let i=0; i<radioCheck.length; i++){
        if(radioCheck[i].checked){
            outConsol.innerHTML  = "Ваша консоль- " + radioCheck[i].value;
        }
    }
}

consl();

  </script>
</body>
</html>

Пожалуйста, отформатируйте свой код!


[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Сергей Ракипов 30.03.2020 11:24

Я просто не вставляю весь кода, думаю зачем людей лишними символами перегружать

Но буду иметь виду

И я увидел что вы поставили выбор

<input type="radio" value="2" class="radio" name="test" checked="checked">


А у меня этого checked="checked" нет и не надо, мне нужно что бы скрипт отслеживал выбор который сделан пользователем

Сергей Ракипов 30.03.2020 11:30

Нашел что нужно какой то change но куда его вставить не пойму

рони 30.03.2020 11:40

Сергей Ракипов,
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>
<body>
<input type="radio" value="1" class="radio" name="test">
<input type="radio" value="2" class="radio" name="test" checked="checked">
<input type="radio" value="3" class="radio" name="test">
<input type="radio" value="4" class="radio" name="test">
<input type="radio" value="5" class="radio" name="test">
<div class="out_console"></div>
<script>
let radioCheck = document.querySelectorAll(".radio");
let outConsol = document.querySelector(".out_console");
const checkedShow = function() {
    outConsol.innerHTML = "Ваша консоль - " + this.value;
}
function consl(){
    for(let i=0; i<radioCheck.length; i++){
        radioCheck[i].addEventListener("change", checkedShow);
        if(radioCheck[i].checked){
           checkedShow.bind(radioCheck[i])()
        }
    }
}

consl();

  </script>
</body>
</html>

Сергей Ракипов 30.03.2020 17:19

Цитата:

Сообщение от рони (Сообщение 521910)
Сергей Ракипов,
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>
<body>
<input type="radio" value="1" class="radio" name="test">
<input type="radio" value="2" class="radio" name="test" checked="checked">
<input type="radio" value="3" class="radio" name="test">
<input type="radio" value="4" class="radio" name="test">
<input type="radio" value="5" class="radio" name="test">
<div class="out_console"></div>
<script>
let radioCheck = document.querySelectorAll(".radio");
let outConsol = document.querySelector(".out_console");
const checkedShow = function() {
    outConsol.innerHTML = "Ваша консоль - " + this.value;
}
function consl(){
    for(let i=0; i<radioCheck.length; i++){
        radioCheck[i].addEventListener("change", checkedShow);
        if(radioCheck[i].checked){
           checkedShow.bind(radioCheck[i])()
        }
    }
}

consl();

  </script>
</body>
</html>

Я могу скопировать и дальше делать код, но желание понять огромное, можете в двух словах

Зачем констатнат? и у меня не будет по умолчанию не чего выбрано.
И там есть еще какие то значение

рони 30.03.2020 17:38

Цитата:

Сообщение от Сергей Ракипов
и у меня не будет по умолчанию не чего выбрано.

уберите строки 25 - 27.
вместо const checkedShow = function() {

можно
function checkedShow() {


Часовой пояс GMT +3, время: 19:18.