Как вернуть предыдущий текст после функции JS onclick?

Мой код:

function changeText()
{
 document.getElementById('button').innerHTML = 'Downloading...';
}

Кнопка:

<button id="button" onclick="changeText()" value="Change Text">Download file as CSV</button>

Я хочу, чтобы кнопка изменилась на "Загрузка..." и вернулась к "Загрузить как CSV" через несколько секунд, возможно ли это в JS?

3 ответа

Вы можете использовать setTimeout или при успешном асинхронном вызове:


document.getElementById("your-button").value="Downloading...";
setTimeout(function () { 
 document.getElementById("your-button").value="Download as CSV"; 
}, 3000);

Приведенный выше код устанавливает текст кнопки, а затем ждет 3 секунды и после этого устанавливает текст кнопки в другую строку.


Этот код восстановит старый текст после 2000 мс, но вы можете настроить таймаут.

function changeText() {
 var button = document.getElementById('button');
 var oldText = button.innerHTML;
 button.innerHTML = 'Downloading...';
 setTimeout(function(){
 button.innerHTML = oldText;
 }, 2000);
}

licensed under cc by-sa 3.0 with attribution.