Настроить кнопку на очистку input

Покажите как изменить код скрипта, чтобы при нажатии на кнопку очищалось не только поле input, но и переданный из него текст?

Если ввести текст в input. то он дублируется в тег p, при стирании текста с клавиатуры текст из тега p нормально удаляется, а при нажатии кнопки "очистить" очищается только input

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="demo">Text, text, text</p>
<div class="inputS" id="sam">
  <input type="text" placeholder="Введите свой текст..." data-default="Text, text, text" />
</div>
<div onClick="resetAllValues();">
  <p>очистить</p>
</div>

<script>
  $(function() {
    let textRenew = function textRenew(val, id) {
      if (id == "sam") {
        $(".demo").text(val)
      }
    };
    let idST = $(".inputS").attr("id");
    $(".inputS input[type=text]").keyup(
      function() {
        if ($(this).val().length != 0) {
          textRenew($(this).val(), idST)
        } else {
          textRenew($(this).data("default"), idST)
        }
      })
  });


  $(document).ready(function() {
    $('.inputS').find('input:text').val('');
  });

  function resetAllValues() {
    $('.inputS').find('input:text').val('');
  }
</script>


Ответы (2 шт):

Автор решения: ksa

Покажите как изменить код скрипта, чтобы при нажатии на кнопку очищалось не только поле input, но и переданный из него текст?

Например вот так можно "очистить" текст...

$(function() {
  let textRenew = function textRenew(val, id) {
    if (id == "sam") {
      $(".demo").text(val)
    }
  };
  let idST = $(".inputS").attr("id");
  $(".inputS input[type=text]").keyup(
    function() {
      if ($(this).val().length != 0) {
        textRenew($(this).val(), idST)
      } else {
        textRenew($(this).data("default"), idST)
      }
    })
  resetAllValues()
});

function resetAllValues() {
  const o = $('.inputS').find('input:text')
  o.val('');
  $('.demo').text(o.data('default'));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="demo">Text, text, text</p>
<div class="inputS" id="sam">
  <input type="text" placeholder="Введите свой текст..." data-default="Text, text, text" />
</div>
<div onClick="resetAllValues();">
  <p>очистить</p>
</div>

→ Ссылка
Автор решения: TemirStack

Если имели ввиду вернуть default текст

...

function resetAllValues() {
    $('.inputS').find('input:text').val('');
    $('.demo').text($('.inputS').find(`[data-default]`).data('default'));
}
→ Ссылка