Нужна помощь с калькулятором

S
На сайте с 24.08.2015
Offline
73
948

Приветствую, коллеги!

Без Вашей помощи никак)


<form onsubmit="return false" oninput="o.value = parseInt(a.value) * parseInt(b.value) * 1.12">
<input type="range" name="a" id="a" min="100" max="10000" step="100" onchange="document.getElementById('rangeValue').innerHTML = this.value;">
<span id="rangeValue">100</span>
<input type="range" name="b" id="b" min="1" max="12" step="1" onchange="document.getElementById('rangeValue2').innerHTML = this.value;">
<span id="rangeValue2">3</span>
<output name="o" for="a b">0</output>
</form>

Необходимо, чтобы при изменении значении второго ползунка (id="b"), значение 1.12, которое в первой строке в формуле, изменялось. Изменяться оно должно не на рандомное, а на заданное мной (например 2.2,2.7,2.9 и т.д.). Т.е. будет 12 вариантов этого значения, т.к. у inout id="b" установлено max="12".

Заранее благодарен, если кто-то поможет.

H
На сайте с 21.08.2004
Offline
122
#1

как-то так:


<script>
var k=new Array(1,2,3,4,5,6,7,8,9,10,11,12);
</script>
<form onsubmit="return false" oninput="o.value =parseInt(a.value) * parseInt(b.value) * k[parseInt(b.value) -1 ]">
<input type="range" name="a" id="a" min="100" max="10000" step="100" onchange="document.getElementById('rangeValue').innerHTML = this.value;">
<span id="rangeValue">100</span>
<input type="range" name="b" id="b" min="1" max="12" step="1" onchange="document.getElementById('rangeValue2').innerHTML = this.value;">
<span id="rangeValue2">3</span>
<br>
<output name="o" for="a b">0</output>
</form>

https://jsfiddle.net/2kceqbf4/

Есть что-то, что мы не знаем, но узнать это мы не можем.
S
На сайте с 24.08.2015
Offline
73
#2

hrach, преогромнейшая благодарность :)

а может еще подскажете как в результате округлить число, убрать десятичные? а то при умножении, допустим, на 1.12, результат выглядит вот так 112.0000000001, можно как-то его привести к 112?

H
На сайте с 21.08.2004
Offline
122
#3
samdo:
hrach, преогромнейшая благодарность :)
а может еще подскажете как в результате округлить число, убрать десятичные? а то при умножении, допустим, на 1.12, результат выглядит вот так 112.0000000001, можно как-то его привести к 112?

оберните в Math.round или в parseInt:



Math.round(parseInt(a.value) * parseInt(b.value) * k[parseInt(b.value) -1 ])

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий