Сброс HTML элемента к значению по умолчанию с JavaScript - PullRequest
0 голосов
/ 09 января 2020

Проблема:

Мне интересно, есть ли подобная функция, которая позволяет сбросить текст к его значению по умолчанию, как для атрибута значения.

HTML:

<input type="range" class="custom-range" name="studyslider" min="1" max="100" step="1" value="50" oninput="sliderChange(this)" onchange="sliderChange(this)">
<output class="badge badge-light badge-width mt-4 mb-3" name="studyslider-output">50</output>

JavaScript:

// Resetting the value for <input>
const slider = node.querySelector(".custom-range");
slider.value = slider.defaultValue;

// Resetting the value for <output>
const sliderOutput = node.querySelector("output");
sliderOutput.innerHTML = "50";

Желаемый выход:

Чтобы получить значение внутри <output> и сбрасывать его каждый раз при отправке ответа, аналогично defaultValue для <input>.

Ответы [ 3 ]

2 голосов
/ 09 января 2020

Вы можете использовать атрибут data-X:

<output data-default-value="50">50</output>

JS:

sliderOutput.innerHTML = sliderOutput.dataset.defaultValue
1 голос
/ 09 января 2020

вы пытаетесь присвоить значение slider.defaultValue для sliderOutput.innerHTML, почему бы просто не сделать это?

// Resetting the value for <input> const slider = node.querySelector(".custom-range"); slider.value = slider.defaultValue;

// Resetting the value for <output> const sliderOutput = node.querySelector("output"); sliderOutput.innerHTML = slider.defaultValue;

0 голосов
/ 09 января 2020

Вы также можете использовать собственный сброс.

function sliderChange(e) {
  document.getElementById("output").value = document.getElementById("slider").value
}
<form>
  <input id="slider" type="range" class="custom-range" name="studyslider" min="1" max="100" step="1" value="50" oninput="sliderChange(this)" onchange="sliderChange(this)">
  <output class="badge badge-light badge-width mt-4 mb-3" name="studyslider-output" id="output">50</output>
<input type="reset" />
</form>
...