【发布时间】:2018-08-26 14:44:11
【问题描述】:
我制作了这两个程序化范围滑块,用户可以通过滑动条来选择值或在框中输入数字。 (我确信有更有效的方法,但我只是在学习)
但是,当我尝试使用框中的值进行添加时,它会返回 NAN。我认为这仅仅是因为它使用了字符串值,但即使使用 parseFloat 函数也无法正确显示。
我应该如何在“函数(厚度A/B)”之外引用这些变量,以便在数学运算中使用它们?
谢谢。
<html>
<body>
<h3> Thickness A</h3>
<p> Please select value using the slider bar or type in the text box.</p>
<input type="range" id="thicknessARange" value="0" min="0" max="100" step="0.1"
oninput="thicknessA(this.value)"
onchange="thicknessA(this.value)">
</input>
<br>
<p> Thickness A is:
<input type="number" id="thicknessANumber" value="0" min="0" max="100" step="0.1"
oninput="thicknessA(this.value)"
onchange="thicknessA(this.value)">
</input>
<span>mm</span></p>
<h3> Thickness B</h3>
<p> Please select value using the slider bar or type in the text box.</p>
<input type="range" id="thicknessBRange" value="0" min="0" max="100" step="0.1"
oninput="thicknessB(this.value)"
onchange="thicknessB(this.value)">
<br>
<p>Thickness B is:
<input type="number" id="thicknessBNumber" value="0" min="0" max="100" step="0.1"
oninput="thicknessB(this.value)"
onchange="thicknessB(this.value)"> </input>
<span>mm</span></p>
<h4>Your total is: <span id="total"></span>
<script>
var uno;
var dos;
var addition;
function thicknessA(newthicknessA)
{
document.getElementById('thicknessARange').value = newthicknessA;
document.getElementById('thicknessANumber').value = newthicknessA;
uno = document.getElementById('thicknessANumber').value;
}
function thicknessB(newthicknessB)
{
document.getElementById('thicknessBRange').value = newthicknessB;
document.getElementById('thicknessBNumber').value = newthicknessB;
dos = document.getElementById('thicknessBNumber').value;
}
addition = parseFloat(uno) + parseFloat(dos) ;
document.getElementById("total").innerHTML= addition;
</script></body></html>
【问题讨论】:
-
同时使用“oninput”和“onchange”事件来支持不同的浏览器是正确的还是没有必要的?
标签: javascript jquery html input range