Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   input range value Ничего не понимаю! (https://javascript.ru/forum/dom-window/81313-input-range-value-nichego-ne-ponimayu.html)

voraa 08.11.2020 17:19

input range value Ничего не понимаю!
 
Совсем простая штука
<!DOCTYPE html>
<html>
<body>

<input type="range" id="rng" style="width:300px;">
<br>
<button onclick="setrange()">Set 0.75</button>

<script>
let rng = document.getElementById("rng")
rng.min = "0";
rng.max = "1";
rng.value = "0.3";
rng.step = "0.1";

console.log('before', rng.value, rng.min, rng.max, rng.step) //before 0 0 1 0.1

const setrange =() =>{
	rng.value = "0.75";
	console.log('after',rng.value, rng.min, rng.max, rng.step) // after 0.8 0 1 0.1
}
</script>

</body>
</html>


Почему при начальной установки value = "0.3", значение получается 0 !?
Хотя потом value = "0.75" дает 0.8 (ну это потому, что step=0.1)


Вопрос снимается. Дошло!
Сначала надо step установить.

laimas 08.11.2020 18:00

voraa,
а зачем rng.min = "0"; и т.д. в кавычках?

voraa 08.11.2020 18:29

Цитата:

Сообщение от laimas
а зачем rng.min = "0"; и т.д. в кавычках?

Да просто долго мучился, устанавливал по всякому.
Нелогично это step = 1 по умолчанию. Логичнее было бы step = 'any'. Ну не установил, значит с любым шагом, тем более, что для range значения все равно не точные.
Тут еще нарвался.

Везде написано, что input.value имеет тип DOMString
Ага! Как же.
Для input type=number устанавливаю
value='10.' - сбрасывает value в пустую строку.
value=10. - проходит.


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