Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Повторное нажатие кнопки поле таймута (https://javascript.ru/forum/events/78521-povtornoe-nazhatie-knopki-pole-tajjmuta.html)

solic2010 25.09.2019 13:03

Повторное нажатие кнопки поле таймута
 
Вложений: 2
Здраствуете. Подскажите как реализовать повторное нажание кнопки или ссылки, после отчета.

Такое реализовано на многих сайтах .

СМС с кодом отправлено
Запросите код повторно через % секунд


или

СМС с кодом отправлено
запросить повторый код можно через % секунд

т.е. при нажатии на кнопку выслать код кнопка блокируется или заменяется на текст запросить повторый код можно через % секунд

После того как секунды пройдут , оптять включить кнопку или показать ее.

как то так.

Dilettante_Pro 25.09.2019 13:17

Без обратного отсчета
<button id="send">Выслать код</button>
<div id="result"><div>
<script>
send.onclick = function() {

      result.innerText = "Код отправлен. Повторная отправка возможна через 10 сек.";
      send.disabled = "true";

      setTimeout(function() {
           result.innerText = "";
           send.disabled = "";
      },10000);
}
</script>

с обратным отсчетом
<button id="send">Выслать код</button>
<div id="result"><div>
<script>
send.onclick = function() {
      var count = 11.
      send.disabled = "true";
      var countdown = setInterval(function(){
            count--;
            result.innerText = "Код отправлен. Повторная отправка возможна через " + count + " сек.";
            if(count == 0) {
               result.innerText = "";
               send.disabled = ""; 
               clearInterval(countdown);
            }
      },1000);
}
</script>

solic2010 25.09.2019 16:37

https://mnogo-tortov.ru/user/recover

solic2010 25.09.2019 16:39

https://mnogo-tortov.ru/user/recover
Спасибо добрые гуру JS. То что просил работает как надо
Но с этой функцией не работает отправка.

предполагаю что это из за этой функции. Может как то можно поправить код. И заменить send.disabled на что то другое.

solic2010 26.09.2019 09:26

Друзья неужели ни кто мне не поможет не подскажет

Dilettante_Pro 26.09.2019 17:58

solic2010,
вот такой вариант точно работает

<form method = "post" action = "mailto:вашемайл" enctype="text/plain">
   <input type="text" name= "test" value = "Test"> 
   <button id="send">Выслать код</button>
   <div id="result"><div>
</form>
<script>
document.querySelector("form").onsubmit  = function() {
      var count = 11.
      send.disabled = "true";
      var countdown = setInterval(function(){
            count--;
            result.innerText = "Код отправлен. Повторная отправка возможна через " + count + " сек.";
            if(count == 0) {
               result.innerText = "";
               send.disabled = ""; 
               clearInterval(countdown);
            }
      },1000);
}
</script>


вместо send.disabled можно менять класс кнопки ( но disabled тоже оставить - иначе кнопка, хоть и измененного вида, будет активна)

solic2010 27.09.2019 10:19

к сожалению последний вариант вообще не рабочий. Если первый хоть блокировал кнопку выдавал сообщение и делал setInterval, хотя отправка не происходила.

Dilettante_Pro 27.09.2019 13:07

Цитата:

Сообщение от solic2010
к сожалению последний вариант вообще не рабочий

Здесь работает? Пробовали запускать?
Покажите ваш вариант кода, который не работает


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