Anastasia2306
@Anastasia2306
PHP-разработчик.

Как после клика по кнопке, которая копирует текст показать сообщение «Скопировано»?

Здравствуйте. Есть вот такая конструкция:

<input id = "promocode" type="text" name="promocode" value="GOOD12" readonly="" />
<a id = "copy" >Скопировать</a>

<script>
var text = document.getElementById("promocode");
var btn = document.getElementById("copy");
btn.onclick = function() {
text.select();    
document.execCommand("copy");
}
</script>


При клике на кнопку происходит копирование из INPUT. Как сделать так, чтобы после копирования текст на кнопке изменялся на "Скопировано"?

Заранее всем спасибо!
  • Вопрос задан
  • 275 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега JavaScript
Python, JS, WordPress, SEO, Bots, Adversting
execCommand() is deprecated, поэтому предлагаю navigator.clipboard:
<script>
  const text = document.getElementById("promocode");
  const btn = document.getElementById("copy");

  btn.addEventListener('click', () => {
    if (navigator.clipboard) {
      navigator.clipboard.writeText(text.value)
        .then(() => {
          btn.textContent = "Скопировано";
        })
        .catch(err => {
          console.error('ОшибкО: ', err);
        });
    } else {
      text.select();
      document.execCommand("copy");
      btn.textContent = "Скопировано";
    }
  });
</script>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы