Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 15.10.2015
Сообщений: 69

Не запускается таймер по нажатию на кнопку.

18.11.2018, 10:58. Показов 1407. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
написал такой вот код, но таймер все равно не реагирует. В чем может быть проблема?

HTML5
1
2
<div id="showtime">00:00</div>
    <button id="start" class="btn btn-primary">START</button>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let info= document.getElementById('showtime');
let timer;
function action(btn){
 
    if( btn=='start')
    {
        timer=setInterval(function(){
 
let cur=parseInt(info.innerHTML);
if(cur=='0'){
    cur=30;
}
else cur--;
info.innerHTML=cur;
 
        },1000);
    }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2018, 10:58
Ответы с готовыми решениями:

Как сделать таймер обратного отсчёта по нажатию на кнопку и сделать её неактивной
Снова пишу сюда, ибо нигде больше помощи не дождёшься:( Мне тут нужно сделать такую штуку: чтобы при нажатии на кнопку сработал таймер...

На форме создать кнопку и по нажатию на эту кнопку открыть фотографию
Салют всем форумчанам! Помогите мне! Как реализовать следующую задумку - на форме создать кнопку и по нажатию на эту кнопку окрывается...

Сделать по нажатию на 1-ую кнопку открытие формы2 на указанной записи, а на 2-ую кнопку - формы2 на новой
Здравствуйте, возник вопрос..., не буду тянуть кота за хвост. В общем: на главной форме есть 2 кнопки, также имеется вторая форма ...

6
 Аватар для Egor.S
215 / 180 / 79
Регистрация: 02.10.2011
Сообщений: 651
18.11.2018, 13:45
как минимум функция нигде не вызывается.

btn == start странное что-то

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let info = document.getElementById('showtime');
let timer;
 
function action(btn) {
  timer = setInterval(function() {
    let cur = parseInt(info.innerHTML);
    if (cur == '0') {
      cur = 30;
    } else cur--;
    info.innerHTML = cur;
 
  }, 1000);
}
 
 
const btn = document.getElementById('start');
btn.addEventListener('click',action)
0
0 / 0 / 1
Регистрация: 15.10.2015
Сообщений: 69
18.11.2018, 13:49  [ТС]
Так как тему нельзя менять, сделал код по лучше по примеру, но очет так идет, а чтоб сделать по нажатии кнопки "старт", не получается.
И хочу сделать ввод данных, вышло только через
JavaScript
1
2
3
let day= prompt('Enter day', 0);
let hour= prompt('Enter hour', 0);
let minute= prompt('Enter minute', 0);
Но хочется без сплывающего окна промпт, а через обычную форму. Попробовал и не выходит.
вот код:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<body>
<div class="container">
    <h2>Home Work 2</h2>
    <div class="box hide"></div>
    <div id="showtime">00:00</div>
    <button id="start" class="btn btn-primary">START</button>
    <br>
    <br>
    <form name="form">
    <div>
           Day: <input id='day_id'>
    </div>
    <div>
           hours: <input id='hour_id'>
    </div>
    <div>
           minutes: <input id='minute_id'>
    </div>
   
 
</form>
 
</div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  
    
    function  timer(){
         let day= documeny.getElementById('day_id').value;
        let hour=document.getElementById('hour_id').value;
        let  minute=document.getElementById('minute_id').value;
        let second=59;
      const now = new Date()
          , newTime = new Date(now.getFullYear()+ 1, 0, 1)
          ,  diff = newTime.getTime() - now.getTime()
          , days = day
          , hours = hour
          , minutes = minute
          , seconds = 59 - now.getSeconds()
      ;
 
      let st = '';
      if(diff <= 0) {
          st  = 'Happy New Year'
       } else {
        st=`${days} days, ${hours} hours,${minutes}minutes,${seconds}seconds`;
      }
document.getElementById('start').addEventListener('click', timer);
 
      document.getElementById("showtime").innerHTML = st;
      setTimeout(timer, 1000);
  }
  timer();
Добавлено через 1 минуту
Цитата Сообщение от Egor.S Посмотреть сообщение
как минимум функция нигде не вызывается.
btn == start странное что-то
Да и я взглянув на предыдущий свой код, осознал что бред написал. по этому сделал иначе. выше код
0
 Аватар для Egor.S
215 / 180 / 79
Регистрация: 02.10.2011
Сообщений: 651
18.11.2018, 13:52
Лучший ответ Сообщение было отмечено lFoster как решение

Решение

JavaScript
1
2
3
let day= getElementById('day_id').value;
        let hour=getElementById('hour_id').value;
        let  minute=getElementById('minute_id').value;
нужно заменить на
JavaScript
1
2
3
let day= documentgetElementById('day_id').value;
        let hour=document.getElementById('hour_id').value;
        let  minute=document.getElementById('minute_id').value;
0
0 / 0 / 1
Регистрация: 15.10.2015
Сообщений: 69
18.11.2018, 13:59  [ТС]
Цитата Сообщение от Egor.S Посмотреть сообщение
JavaScript
1
2
3
let day= getElementById('day_id').value;
        let hour=getElementById('hour_id').value;
        let  minute=getElementById('minute_id').value;
нужно заменить на
JavaScript
1
2
3
let day= documentgetElementById('day_id').value;
        let hour=document.getElementById('hour_id').value;
        let  minute=document.getElementById('minute_id').value;
Уже заменил. У меня проблема со стартом счетчика. Что там не так я написал?
0
 Аватар для Egor.S
215 / 180 / 79
Регистрация: 02.10.2011
Сообщений: 651
18.11.2018, 14:08
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 function timer() {
   let day = document.getElementById('day_id').value;
   let hour = document.getElementById('hour_id').value;
   let minute = document.getElementById('minute_id').value;
   let second = 59;
   const now = new Date(),
     newTime = new Date(now.getFullYear() + 1, 0, 1),
     diff = newTime.getTime() - now.getTime(),
     days = day,
     hours = hour,
     minutes = minute,
     seconds = 59 - now.getSeconds();
 
   let st = '';
   if (diff <= 0) {
     st = 'Happy New Year'
   } else {
     st = `${days} days, ${hours} hours,${minutes}minutes,${seconds}seconds`;
   }
   document.getElementById("showtime").innerHTML = st;
 }
 
 document.getElementById('start').addEventListener('click', () => setInterval(timer, 1000));
1
0 / 0 / 1
Регистрация: 15.10.2015
Сообщений: 69
18.11.2018, 14:20  [ТС]
Egor.S, благодарю. А не подскажите, почему тогда тут минуты не уменьшается, только секунды?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2018, 14:20
Помогаю со студенческими работами здесь

Таймер на форме. Запуск по нажатию кнопки
Добрый вечер форумчане, подскажите или поделитесь ссылкой на готовый вариант. Хочу сделать на форме поле-таймер. Запускаемый по...

Как остановить таймер по нажатию кнопки?
Сделал эффект вращение детали на нажатие Button5. Как сделать чтобы при повторном нажатии Button5 таймер останавливался? ...

Включить таймер, выполняющий необходимые действия, по нажатию кнопки
как сделать так что бы включался таймер по нажатию кнопки и выполнял необходимые действия??? например по нажатию кнопки закрытие формы...

не запускается таймер
не запускается таймер. Кто подскажет в чем ошибка? .CSEG .ORG $00 ; Riset rjmp risit .ORG $01 ;jmp EXT_INT0 ; IRQ0 RETI .ORG...

Не запускается таймер
Построение проходит успешно,но таймер не запускается(( Вот код: using System; using System.Collections.Generic; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru