Как отключить тип ввода и включить кнопку через определенное время? - PullRequest
0 голосов
/ 17 июня 2020

Я делаю вопросник ie форму, в которой через 60 секунд переключатель будет отключен, а следующая кнопка будет включена, но я не понимаю, как это реализовать. * за то же

<script>
  $('input[type="submit"]').attr('disabled' , true);
</script>
<script>
  var timeLeft = 60;
  var elem = document.getElementById('some_div');
  var timerId = setInterval(countdown, 1000);

  function countdown() {
    if (timeLeft == -1) {
        clearTimeout(timerId);
        doSomething();
    } else {
        elem.innerHTML = timeLeft + ' seconds remaining';
        timeLeft--;
    }
  }

  function doSomething() {
    $(':radio:not(:checked)').attr('disabled', true);
    $('input[type="submit"]').attr('disabled' , false);
  }
</script>

1 Ответ

1 голос
/ 17 июня 2020
  • Установить кнопку отправки «Далее» изначально как атрибут: disabled
  • Используйте className, например: "next" для «Далее» button
  • Используйте атрибут name для ваших переключателей
  • У вас была лишняя напрасная секунда. Вам не нужен блок else внутри функции countdown:

var timeLeft = 5;
var elem = document.getElementById('some_div');
var timerId = setInterval(countdown, 1000);

function countdown() {
  timeLeft--;
  elem.textContent = `${timeLeft} seconds remaining`;
  if (!timeLeft) {
    doSomething();
    clearTimeout(timerId);
  }
}

function doSomething() {
  $('[name="a"]:not(:checked)').prop('disabled', true);
  $('.next').prop('disabled', false);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="">
  <input type="radio" name="a">
  <input type="radio" name="a">
  <input type="radio" name="a">
  <input type="radio" name="a">
  <button class="next" disabled>Next</button>
  <div id="some_div"></div>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...