Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как использовать значение из input 1 раз (https://javascript.ru/forum/dom-window/76809-kak-ispolzovat-znachenie-iz-input-1-raz.html)

ArdJenya 16.02.2019 11:38

Как использовать значение из input 1 раз
 
Добрый день! Есть вот такой таймер(код ниже). Подскажите пожалуйста как вытащить значение из текстового поля только 1 раз и дальше с ним работать. Потому как при каждом вызове функции timer значения переменных обновляются данными находящимися в input а длжны уменьшаться. Заранее огромное спасибо!
<body>
    <div id="timer">
        
        <div id="minute"></div>&nbsp;:
        <div id="second"></div>
    </div>
    <input type="text" id="m" size="5"><br/>
    <input type="text" id="s" size="5"><br/>
    <input type="button" id="start" value="Старт">
    

    <script>

        var intervalID; 
        document.getElementById("start").onclick = clickHandler;       
        
      function timer() {
           
           var minute = document.getElementById('m').value;
           var second = document.getElementById('s').value;
       
            minute = Number.parseInt(minute);
            second = Number.parseInt(second);


            var end = false;
 
            if (second > 0) second--;
            else {
                second = 59;
 

                    if (minute > 0) minute--;
                    else end = true;
            }
 
            if (end) {
                clearInterval(intervalID);
                alert("Таймер сработал!");
            } else {
                
                document.getElementById('minute').textContent = (minute > -1 ? "" : "0") + minute;
                document.getElementById('second').textContent = (second > -1 ? "" : "0") + second;
            }
        }
        function clickHandler() {
            intervalID = setInterval(timer, 1000);
        }
    </script>
</body>

Nexus 16.02.2019 11:48

var intervalID;
document.getElementById("start").onclick = clickHandler;

var minute = 0,
    second = 0;

function timer() {

    minute = Number.parseInt(minute);
    second = Number.parseInt(second);


    var end = false;

    if (second > 0) second--;
    else {
        second = 59;


        if (minute > 0) minute--;
        else end = true;
    }

    if (end) {
        clearInterval(intervalID);
        alert("Таймер сработал!");
    } else {

        document.getElementById('minute').textContent = (minute > -1 ? "" : "0") + minute;
        document.getElementById('second').textContent = (second > -1 ? "" : "0") + second;
    }
}

function clickHandler() {
    minute = document.getElementById('m').value;
    second = document.getElementById('s').value;

    intervalID = setInterval(timer, 1000);
}


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

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

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

ArdJenya 16.02.2019 13:39

Большое спасибо за совет, простите за неотформатированный код. Я новичок на форуме.


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