Показать сообщение отдельно
  #1 (permalink)  
Старый 01.03.2017, 20:17
Новичок на форуме
Отправить личное сообщение для Y_a__r_i__k Посмотреть профиль Найти все сообщения от Y_a__r_i__k
 
Регистрация: 01.03.2017
Сообщений: 1

Помогите найти ошибку в коде
Изучаю javascript и решил написать простенький таймер для проверки своих-знаний. Но в каком-то месте допустил ошибку. Пожалуйста помогите мне ее найти
Вот код:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>javascript</title>
	<script type="text/javascript">

var izm;
	var timeg;
	var t;
	function timer(form){
		var ans = form.ans.value;
		var time = form.time.value;
		timeg = time;
		var fail = true;
		if (ans == "sec")
			t = time * 1000;
		else if (ans == "min")
			t = time * 60000;
		else if (ans == "hou")
			t = time * 3600000;
		else{
		alert("вы не указали единицы измерения");
		fail = false;}
		if (fail != false){
			setTimeout( outtimer , t );
			setTimeout( calk , 0);
		}	
	
	function calk (){
		if (timeg >= 3600) {
		var r = Math.floor( timeg / 3600 );
		var e = Math.floor( timeg / 60 % 60);
		var z = (timeg - r * 3600 - e * 60);
		if (e == 0 && z == 0){
			document.getElementById('actt').innerHTML = ("осталось " + r + " часов");
		}else if (e == 0){
			document.getElementById('actt').innerHTML = ("осталось " + r + " часов" + " и " + z + " секунд");
		}else if (z == 0){
			document.getElementById('actt').innerHTML = ("осталось " + r + " минут" + " и " + e + " минут");
		}	
		}
		else if (timeg >= 60 && time < 3600){
		var e = Math.floor( timeg / 60);
		var z = (timeg - e * 60);
        if (z != 0){
        	document.getElementById('actt').innerHTML = ("осталось " + e + " минут" + " и " + z + " секунд");
        }else{
        	document.getElementById('actt').innerHTML = ("осталось " + e + " минут");
        }
    }	else if (timeg < 60 %% timeg >= 0){
    	document.getElementById('actt').innerHTML = ("осталось " + timeg + " секунд");
    }
        timeg --;
        if (timeg < 0){
        	document.getElementById('actt').innerHTML = ("Таймер закончил свое действие");
        }
		setTimeout( calk  , 1000 );
	}
	function outtimer () {
		alert("время закончилось");
	}

</script>
</head>
<body>
	<form action="" id = "form">
		<hr>
		<label for="time">Время</label>
		<input type="text" placeholder="Введите время для таймера" name = "time" id = "time">
		<br>
		<hr>
		<p>В каких еденицах измерения вы написали время?</p>
		<label for="sec">Секунды</label>
		<input type="radio" name="ans" id="sec" value="sec">
		<label for="min">Минуты</label>
		<input type="radio" name="ans" id="min" value="min">
		<label for="hou">Часы</label>
		<input type="radio" name="ans" id="hou" value="hou">
		<br>
		<hr>
		<input type="button" onclick="timer(getElementById('form'))" value="Активировать таймер">
		<hr>
		<span id = "actt">Вы не активировали таймер</span>
		<hr>
	</form>
</body>
</html>

Последний раз редактировалось Y_a__r_i__k, 01.03.2017 в 20:29.
Ответить с цитированием