Javascript Can';t计算html输入类型范围的值
我想计算Html范围输入的值。 只希望在输入范围更改时动态更改结果。 我写的函数不够清晰,似乎不起作用。 谁能帮我一下吗。 提前谢谢。 以下是我的html代码:Javascript Can';t计算html输入类型范围的值,javascript,Javascript,我想计算Html范围输入的值。 只希望在输入范围更改时动态更改结果。 我写的函数不够清晰,似乎不起作用。 谁能帮我一下吗。 提前谢谢。 以下是我的html代码: <form> Height: <input type="range" id="height" onchange="this.setAttribute('value',this.value);" min="0" max="200" step="0.1" value="0" /> <br>
<form>
Height:
<input type="range" id="height" onchange="this.setAttribute('value',this.value);" min="0" max="200" step="0.1" value="0" />
<br>
Weight:
<input type="range" id="weight" onchange="this.setAttribute('value',this.value);" min="0" max="200" step="0.1" value="0" />
<br>
</form>
<div id="displaybmi"> Your BMI : </div>
}
getElementById,而不是ByID。不要将最后一个字符大写。代码中有4个问题和1个不一致 1) jQuery使用函数
val()
获取输入值,而不是属性value
更改:
height = $('#height').value;
weight = $('#weight').value;
到
2) Javascript区分大小写,没有函数document.getElementByID
它是document.getElementByID
(小写“d”)
3) 您的代码执行一次,当页面加载时,您需要在每次输入
字段更改时执行代码。为此,代码应该位于jQuery$(document).ready()函数中
4) 计算bmi的方法不返回任何值,它只设置一个等于结果的变量(bmi
)。您希望返回此值,以便使用它输出为html
不一致之处在于,您使用jQuery按Id获取字段,然后返回到香草javascript进行输出,您可以做到这一点
$('#displaybmi').html(calbmi(weight,height));
当然,使用本机javascript调用没有什么错,只是可能更容易坚持使用这种或那种方法
其他一些意见:
- 您根本不需要这个位:
onchange=“this.setAttribute('value',this.value);”
- 在对字段进行数学运算时,应强制这些字段只输入数字。考虑使用类似的
height=parseFloat($('#height').val())
工作示例:getElementByID
应该是getElementByID
和。value
应该是.val()
感谢您的回复。。我已经更改了代码,但它仍然无法计算。。身高、体重;height=parseFloat($('#height').val());weight=parseFloat($('#height').val());($(“#身高”)|(“#体重”).change(函数(e){$('#displaybmi').html(calbmi(体重,身高));函数calbmi(){var bmi=weight/(身高*身高);返回bmi;}});
height = $('#height').val();
weight = $('#weight').val();
$('#displaybmi').html(calbmi(weight,height));